Bu tür sorularda kodu yazıp ekran çıktısına baksanız daha iyi olur. Bizim ekran çıktısı şudur dememizin bir anlamı yok. Önemli olan kodu sizin yorumlayıp kafanızda çalıştırmayı denemenizdir. Kodları yorumlarken anlamadığınız bir kod olursa sorabilirsiniz.
*p -> pointer yani işaretçidir. Değişken adresi tutar. Başka bir ifadeyle adres işaret eder. & -> referans yani adresdir.
Örnek:
#include<stdio.h>
int main() { int a=5; // Normal değişken int *p; // Adres saklayacak yani adres işaret edecek pointer (işaretçi) int **r; // Pointer işaret edecek pointer.
p=&a; // p'ye a'nın adresini ata. printf("%d \n", a); // a'nın değerini yaz printf("%d \n", p); // p'nin işaret ettiği adresi yaz yani a'nın adresidir printf("%d \n", *p); // p'nin işaret ettiği adresdeki değeri yaz. yani a'nın değerini yaz printf("%d \n", &p); // p'nin adresini yaz
printf("------------------------------------\n");
r=&p; // r, p'nin adresini saklar. tabiki r'nin kendi adresi vardır. printf("%d \n", a); // a'nın değerini yaz printf("%d \n", r); // r'nın işaret ettiği adresi yaz yani p'nin adresidir printf("%d \n", *r); // r'nin işaret ettiği adresdeki değeri yaz. yani p'nin değerini yaz yani a'nın adresini yaz printf("%d \n", **r); // r'nin işaret ettiği adresin işaret ettiği adresdeki değeri yaz yani a'nın değerini yaz printf("%d \n", &r); // r'nin adresini yaz
printf("------------------------------------\n");
**r=7; // r'nin işaret ettiği adresin işaret ettiği adresdeki değeri 7 yap yani a'yı 7 yap printf("%d \n", a);
< Bu mesaj bu kişi tarafından değiştirildi bgm__ -- 5 Haziran 2017; 18:46:1 >
< Bu ileti mobil sürüm kullanılarak atıldı >