İşaretçi nedir?
- C++ kursu
- Başlangıç
- Ders 77/116
- 5 dk
İşaretçinin bir bellek adresi tuttuğunu ve * ile erişildiğini öğrenirsin.
İşaretçi nedir?
Bir işaretçi (pointer), bellekte bir adresi tutan değişkendir. Bir int'in kendisini değil, onun bellek adresini saklar. Yazımı: int* p;. Burada * p'nin bir int işaretçisi olduğunu belirtir.
Bir işaretçi, hangi değişkene işaret ettiğini gösterir; böylece o değişkene dolaylı olarak erişebilirsin. İşaretçiler C++'ın güçlü ama dikkat isteyen bir aracıdır; belleği doğrudan yönetmene izin verir ama hatalar tanımsız davranışa yol açabilir. Referanslardan farklı olarak boş olabilir ve yeniden bağlanabilir.
İşaretçi ve referans farkı
İşaretçi ve referans benzer ama farklıdır. Referans bir kere bağlanır ve boş olamaz; işaretçi ise yeniden bağlanabilir ve nullptr olabilir. İşaretçinin sözdizimi de farklıdır: *p ile değere erişirsin.
İşaretçi, dinamik bellek ayırma, dizi gezmek ve 'belki boş' durumlarını ifade etmek için kullanılır. Referans ise 'kesinlikle var olan bir değişkene diğer ad' gerektiğinde tercih edilir. İkisi de kendi alanında yararlıdır; hangisini seçeceğin probleme bağlıdır.
Uygulama İşaretçi ile değere eriş
int x = 42; tanımla. int* p = &x; ile p'yi x'in adresine bağla. *p ile p'nin gösterdiği değeri 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
// Değeri yazdır
return 0;
}Örnek çözüm
#include <iostream>
int main() {
int x = 42;
int* p = &x;
std::cout << *p << "\n";
return 0;
}Beklenen çıktı
42
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İşaretçi nedir?
- Bir dizi türü
- Bir bellek adresi tutan değişken Doğru cevap
- Bir bellek bloğu
- Bir referans türü
Açıklama: İşaretçi, bir bellek adresini tutan değişkendir.
2 İşaretçi tanımı
int x = 42;
int____ p = &x;
int x = 42;
int* p = &x;
Açıklama: int* p = &x; p'yi x'i işaret eden bir işaretçi yapar.
3 İfadeyi anlamına eşle
| Kavram | Anlamı |
|---|---|
int* p |
İşaretçi tanımı |
&x |
Adres al |
*p |
Değere eriş |
42 |
Değer |