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 saklaBu ö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.
Görev
KolayDeğ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:
numberadlı bir tamsayı değişkeni tanımlamalı ve bunu 42 değeriyle başlatmalıletteradlı bir karakter değişkeni tanımlamalı ve bunu 'X' değeriyle başlatmalınum_ptradlı bir tamsayı işaretçisi tanımlamalıchar_ptradlı bir karakter işaretçisi tanımlamalınumberdeğişkeninin adresininum_ptrdeğişkenine atamak için adres-of operatörünü kullanmalıletterdeğişkeninin adresinichar_ptrdeğişkenine atamak için adres-of operatörünü kullanmalı- Her iki işaretçide depolanan adresleri,
%pbiçim belirleyicisiyle birlikteprintfkullanarak 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;
}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
1Pointer Temelleri
Pointer Nedir?Pointer TanımlamaAdres Operatörü (&)Dereference Operatörü (*)NULL Pointer'larÖzet: Pointer Temelleri4Proje: Basit Metin Aracı
Projeye Genel BakışKarakter Sayma2İşaretçiler ve Diziler
İşaretçi Olarak Dizi İsimleriDizi Elemanları - İşaretçilerİşaretçi Aritmetiğiİşaretçilerin KarşılaştırılmasıÖzet: İşaretçi ile Dizi Gezinme5İşaretçiler ve Fonksiyonlar
Değer ile GeçmeFonksiyonlara İşaretçi Göndermeİşaretçiler ile Değişkenleri DeğiştirmeKlasik Bir Örnek: SwapFonksiyonlara Dizi GöndermeÖzet: Fonksiyon İşaretçi Argümanları8Yapılar ve İşaretçiler
Yapılara İşaretçilerOk Operatörü (->)Yapıları Değer ile AktarmaYapı İşaretçilerini AktarmaYapıların Dinamik TahsisiÖzet: Yapıyı Değiştirme - Ptr11Son Tekrar Görevleri
Tekrar: Dinamik String BirleştirmeTekrar: Struct DizisiTekrar: Kelime Frekans Sayacı3Karakter Dizileri ve Stringler
char Dizisi Olarak StringlerNull Sonlandırıcıscanf ile String Girişistrlen() Kullanımıstrcpy() Kullanımıstrcat() Kullanımıstrcmp() KullanımıÖzet: Temel String FonksiyonlarıKendi başına pratik yap: Online C derleyicisi