logo

C referans işaretçisi

Bunu zaten bildiğimiz gibi 'işaretçi nedir' Bir işaretçi, başka bir değişkenin adresini saklayan bir değişkendir. Başvuru operatörü aynı zamanda (*) ile temsil edilen dolaylı operatör olarak da bilinir. İşaretçi değişkeniyle birlikte dolaylılık operatörü (*) kullanıldığında buna şu ad verilir: bir işaretçinin referansının kaldırılması. Bir işaretçinin referansını kaldırdığımızda, bu işaretçinin işaret ettiği değişkenin değeri döndürülecektir.

Referans kaldırma işaretçisini neden kullanıyoruz?

Bir işaretçinin referansı aşağıdaki nedenlerden dolayı kullanılır:

  • İşaretçinin işaret ettiği bellek konumunda depolanan verilere erişmek veya bunları değiştirmek için kullanılabilir.
  • Referansı alınmış işaretçiye uygulanan herhangi bir işlem, işaret ettiği değişkenin değerini doğrudan etkileyecektir.

Bir işaretçinin referansını kaldırmak için aşağıdaki adımları izleyelim.

css'de arka plan olarak resim
  • Öncelikle işaretçinin işaret ettiği tamsayı değişkenini bildiririz.
 int x =9; 
  • Şimdi tamsayı işaretçi değişkenini bildiriyoruz.
 int *ptr; 
  • Bir tamsayı işaretçi değişkeninin bildiriminden sonra, 'x' değişkeninin adresini 'ptr' işaretçi değişkenine saklıyoruz.
 ptr=&x; 
  • Aşağıda gösterildiği gibi 'ptr' işaretçisinin referansını kaldırarak 'x' değişkeninin değerini değiştirebiliriz:
 *ptr =8; 

Yukarıdaki satır 'x' değişkeninin değerini 9'dan 8'e değiştirir çünkü 'ptr' 'x' konumunu işaret eder ve 'ptr'nin referansının kaldırılması, yani *ptr=8 x'in değerini günceller.

Yukarıdaki adımların tümünü birleştirelim:

 #include int main() { int x=9; int *ptr; ptr=&x; *ptr=8; printf('value of x is : %d', x); return 0;} 

Çıktı

hackleme işlemi
C referans işaretçisi

Başka bir örneği ele alalım.

 #include int main() { int x=4; int y; int *ptr; ptr=&x; y=*ptr; *ptr=5; printf('The value of x is : %d',x); printf('
 The value of y is : %d',y); return 0; } 

Yukarıdaki kodda:

  • 'x'in '4' değerini tuttuğu iki değişken 'x' ve 'y' bildiririz.
  • Bir işaretçi değişkeni 'ptr' bildiririz.
  • Bir işaretçi değişkeninin bildiriminden sonra 'x' değişkeninin adresini 'ptr' işaretçisine atarız.
  • 'Ptr'nin 'x' değişkeninin adresini içerdiğini bildiğimiz için '*ptr', 'x' ile aynıdır.
  • 'x' değerini 'ptr' değişkeni yardımıyla 'y'ye atarız yani y=* ptr 'x' değişkenini kullanmak yerine.

Not: Bize göre 'x'in değerini değiştirirsek 'ptr' işaretçisi 'x' değişkeninin adresini tuttuğu için 'y'nin değeri de değişecektir. Ancak 'y', '5' değerinin yerel kopyasını sakladığından bu gerçekleşmez.

Çıktı

C referans işaretçisi

Başka bir senaryoyu ele alalım.

 #include int main() { int a=90; int *ptr1,*ptr2; ptr1=&a; ptr2=&a; *ptr1=7; *ptr2=6; printf('The value of a is : %d',a); return 0; } 

Yukarıdaki kodda:

  • İlk önce bir 'a' değişkeni tanımlıyoruz.
  • Daha sonra ptr1 ve ptr2 gibi iki işaretçi bildiririz.
  • Her iki işaretçi de 'a' değişkeninin adresini içerir.
  • *ptr1'e '7' değerini, *ptr2'ye ise '6' değerini atadık. 'a'nın son değeri '6' olacaktır.

Not: Aynı konuma işaret eden birden fazla işaretçimiz varsa, bir işaretçinin yaptığı değişiklik diğer işaretçiyle aynı olacaktır.

Çıktı

Linux'ta klasörü yeniden adlandırma
C referans işaretçisi