* işaretçi erişimi
- C++ kursu
- Başlangıç
- Ders 79/116
- 5 dk
* ile işaretçinin gösterdiği değere erişmeyi öğrenirsin.
* işaretçi erişimi
* operatörü (dereference), bir işaretçinin gösterdiği adresteki değere erişir. int* p = &x; tanımından sonra *p yazarsan, x'in değerini okursun.
* yalnızca okumak için değil, yazmak için de kullanılır. *p = 20; yazarsan, x'in değeri 20 olur; çünkü p, x'in adresini tutar. Bu, referansla geçişin temelidir ve işaretçilerin en güçlü yanlarından biridir.
Dereference ataması
*p = değer; yazarak, işaretçinin gösterdiği değişkenin değerini değiştirebilirsin. Bu, işaretçiyi 'uzaktan kumanda' gibi kullanmaktır; p başka bir fonksiyonda bile olsa, *p ana değişkeni etkiler.
Bu özellik, fonksiyonların çağıran tarafın değişkenlerini değiştirmesi için kullanılır. Örneğin void setToZero(int* p) { *p = 0; } fonksiyonu, kendisine adresi verilen değişkeni sıfırlar. İşaretçi parametreler bu açıdan referans parametrelere benzer.
Uygulama İşaretçi ile değiştir
int x = 10; tanımla. int* p = &x; ile bağla. *p = 20; yazarak x'in değerini değiştir. x'i std::cout ile yazdır.
Başlangıç kodu
#include <iostream>
int main() {
// x değişkenini tanımla
// p işaretçisini x'e bağla
// *p ile x'i değiştir
// x'i yazdır
return 0;
}Örnek çözüm
#include <iostream>
int main() {
int x = 10;
int* p = &x;
*p = 20;
std::cout << x << "\n";
return 0;
}Beklenen çıktı
20
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bu kodun çıktısı nedir?
int x = 10;
int* p = &x;
*p = 20;
std::cout << x;- Hata
- 10
- 0
- 20 Doğru cevap
Açıklama: *p = 20 x'i 20 yapar; çünkü p x'i işaret eder.
2 İfadeyi anlamına eşle
| Kavram | Anlamı |
|---|---|
*p |
Değere eriş |
*p = 20 |
Değeri değiştir |
int* p = &x |
Bağlama |
x |
Hedef değişken |
3 Dereference
std::cout << ____;
std::cout << *p;
Açıklama: std::cout << *p; p'nin gösterdiği değeri yazdırır.