CodeBlanks Logo Icon CodeBlanks

* işaretçi erişimi

* 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

main.cpp
#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

main.cpp
#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?

main.cpp
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

Soru
std::cout << ____;
Cevap
std::cout << *p;

Açıklama: std::cout << *p; p'nin gösterdiği değeri yazdırır.

Başlangıç bölümündeki tüm dersler