Menu
Coddy logo textTech

Adres Operatörü (&)

Coddy'nin C Journey'sinin Logic & Flow bölümünün bir parçası — ders 3 / 63.

Artık işaretçileri tanımlayabildiğinize göre, bir bellek adresini onlarda gerçekte nasıl saklayacağınızı öğrenmeniz gerekiyor. Adres operatörü (&), herhangi bir değişkenin bellek adresini almanın anahtarıdır.

Bir değişken adının önüne & operatörünü yerleştirdiğinizde, o değişkenin saklandığı bellek adresini döndürür. Bunu "Bu değişken bellekte nerede yaşıyor?" diye sormak gibi düşünün.

int age = 25;
int *ptr;
ptr = &age;    // 'age' değişkeninin adresini 'ptr' içinde sakla

Bu örnekte, &age bize age değişkeninin bellek adresini verir. Daha sonra bu adresi ptr pointer'ımıza atarız. Şimdi ptr, age değişkenini "işaret eder".

Adres operatörü (address-of operator) temeldir çünkü normal değişkenler ile işaretçiler (pointers) arasındaki köprüdür. O olmadan, bir işaretçiye hangi değişkeni işaret etmesi gerektiğini söyleyemezdiniz. Veri tiplerinin eşleşmesi gerektiğini unutmayın; bir tam sayının (integer) adresini yalnızca tam sayılar için tanımlanmış bir işaretçiye atayabilirsiniz.

challenge icon

Görev

Kolay

Değişkenleri işaretçilerle (pointers) bağlamak için adres operatörünün kullanımını gösteren bir C programı yazın. Programınız şunları yapmalıdır:

  1. number adında bir tam sayı (integer) değişkeni tanımlayın ve 42 değeriyle başlatın
  2. letter adında bir karakter (character) değişkeni tanımlayın ve 'X' değeriyle başlatın
  3. num_ptr adında bir tam sayı işaretçisi (pointer to an integer) tanımlayın
  4. char_ptr adında bir karakter işaretçisi (pointer to a character) tanımlayın
  5. number değişkeninin adresini num_ptr işaretçisine atamak için adres operatörünü kullanın
  6. letter değişkeninin adresini char_ptr işaretçisine atamak için adres operatörünü kullanın
  7. printf fonksiyonunu %p format belirleyicisi ile kullanarak her iki işaretçide saklanan adresleri yazdırın

Çıktınız, işaretçi adreslerini aşağıdaki formatta görüntülemelidir:

Address of number: [address]
Address of letter: [address]

Gerçek bellek adresleri programın her çalıştırılmasında farklılık gösterecektir, ancak format ve etiketler yukarıda gösterilenle tam olarak eşleşmelidir.

Kopya kağıdı

Adres operatörü (&), bir değişkenin bellek adresini döndürür:

int age = 25;
int *ptr;
ptr = &age;    // 'age' değişkeninin adresini 'ptr' içinde sakla

Adres operatörü, değişkenleri işaretçilerle bağlamak için gereklidir. Veri tipleri eşleşmelidir - bir tam sayının adresini yalnızca tam sayılar için bildirilmiş bir işaretçiye atayabilirsiniz.

İşaretçi adreslerini printf ile yazdırmak için %p format belirleyicisini kullanın.

Kendin dene

#include <stdio.h>

int main() {
    // TODO: Kodunuzu buraya yazın
    // 1. Değişkenleri tanımlayın ve başlatın
    // 2. İşaretçileri (pointers) tanımlayın
    // 3. Adresleri atamak için adres operatörünü (&) kullanın
    // 4. Adresleri gösterilen formatı kullanarak yazdırın
    
    return 0;
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Logic & Flow bölümündeki tüm dersler