Menu
Coddy logo textTech

Adres Operatörü (&)

Coddy'nin C Journey'sinin Mantık & Akış 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ü önemlidir, çünkü normal değişkenler ile işaretçiler arasındaki köprüdür. Bu operatör olmadan bir işaretçiye hangi değişkeni göstereceğini söyleyemezdin. Veri türlerinin eşleşmesi gerektiğini unutma — yalnızca bir tamsayının adresini, tamsayılar için bildirilmiş bir işaretçiye atayabilirsin.

challenge icon

Görev

Kolay

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

  1. number adlı bir tamsayı değişkeni tanımlamalı ve bunu 42 değeriyle başlatmalı
  2. letter adlı bir karakter değişkeni tanımlamalı ve bunu 'X' değeriyle başlatmalı
  3. num_ptr adlı bir tamsayı işaretçisi tanımlamalı
  4. char_ptr adlı bir karakter işaretçisi tanımlamalı
  5. number değişkeninin adresini num_ptr değişkenine atamak için adres-of operatörünü kullanmalı
  6. letter değişkeninin adresini char_ptr değişkenine atamak için adres-of operatörünü kullanmalı
  7. Her iki işaretçide depolanan adresleri, %p biçim belirleyicisiyle birlikte printf kullanarak yazdırmalı

Çıktın, işaretçi adreslerini aşağıdaki biçimde göstermelidir:

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

Gerçek bellek adresleri programın çalıştırmaları arasında değişebilir, ancak biçim ve etiketler yukarıda gösterildiği şekilde tam olarak eşleşmelidir.

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.

Mantık & Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online C derleyicisi