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 bildirebildiğinize göre, bir bellek adresini bunlarda nasıl gerçekten saklayacağınızı öğrenmeniz gerekiyor. Adres alma operatörü (&), herhangi bir değişkenin bellek adresini almanın anahtarıdır.
& operatörünü bir değişken adının önüne yerleştirdiğinizde, bu değişkenin depolandığı bellek adresini döndürür. Bunu, “Bu değişken bellekte nerede bulunuyor?” diye sormak gibi düşünebilirsiniz.
int age = 25;
int *ptr;
ptr = &age; // 'age'in adresini 'ptr'ye saklaBu örnekte, &age bize age değişkeninin bellek adresini verir. Ardından bu adresi işaretçimiz ptr’ye atarız. Artık ptr, age değişkenini “işaret eder”.
Adres alma operatörü çok ö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öyleyemezdiniz. Veri türlerinin eşleşmesi gerektiğini unutmayın — yalnızca bir tamsayının adresini, tamsayılar için bildirilmiş bir işaretçiye atayabilirsiniz.
Görev
KolayDeğişkenleri işaretçilerle bağlamak için adres alma operatörünün kullanımını gösteren bir C programı yazın. Programınız şunları yapmalıdır:
numberadlı bir tamsayı değişkeni tanımlayın ve 42 değeriyle başlatınletteradlı bir karakter değişkeni tanımlayın ve 'X' değeriyle başlatınnum_ptradlı bir tamsayı işaretçisi tanımlayınchar_ptradlı bir karakter işaretçisi tanımlayınnumberdeğişkeninin adresininum_ptrdeğişkenine atamak için adres alma operatörünü kullanınletterdeğişkeninin adresinichar_ptrdeğişkenine atamak için adres alma operatörünü kullanın- Her iki işaretçide depolanan adresleri
%pbiçim belirleyicisiyleprintfkullanarak yazdırın
Çıktınız, işaretçi adreslerini aşağıdaki biçimde göstermelidir:
Address of number: [address]
Address of letter: [address]Gerçek bellek adresleri program çalıştırmaları arasında değişiklik gösterebilir, ancak biçim ve etiketler yukarıda gösterildiği gibi tam olarak eşleşmelidir. [address], yazdırılan adres için bir yer tutucudur: köşeli parantezleri yazdırmayın.
Kendin dene
#include <stdio.h>
int main() {
// TODO: Kodunuzu buraya yazın
// 1. Değişkenleri bildirin ve başlatın
// 2. İşaretçileri bildirin
// 3. Adresleri atamak için adres operatörünü kullanın
// 4. Gösterilen formatı kullanarak adresleri 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