* işaretçi erişimi
- C kursu
- Başlangıç
- Ders 73/116
- 5 dk
* ile işaretçinin gösterdiği değere erişmeyi öğrenirsin.
* ile işaretçi erişimi
* operatörü, işaretçinin tuttuğu adresteki değeri okur (ya da yazar). Buna erişme (dereference) denir.
int x = 10;
int *ptr = &x;
printf("%d\n", *ptr); /* 10 yazar */
*ptr = 20; /* x artık 20 */*ptr hem okuma hem yazmada kullanılır. Atama, işaretçinin gösterdiği adresi değiştirir; ptr'yi değil, x'i değiştirir.
Erişme ile değer değiştirme
*ptr = değer; ataması, işaretçinin gösterdiği adrese yazar. Yani ptr'nin gösterdiği değişken değişir.
int x = 5;
int *ptr = &x;
*ptr = 99; /* x artık 99 */
printf("%d\n", x); /* 99 yazar */Bu, fonksiyonların orijinal değişkeni değiştirmesinin temelidir. Fonksiyon işaretçiyi alır, * ile adrese yazar.
Uygulama Erişme ile değeri değiştir ve yazdır
int x = 5; tanımla. int *ptr = &x; ile bağla. *ptr = 30; ile x'i 30 yap. printf("%d\n", x); ile yazdır. Çıktı 30 olmalı.
Başlangıç kodu
#include <stdio.h>
int main(void) {
int x = 5;
/* ptr'yi x'e bağla */
/* erişme ile x'i 30 yap */
/* printf %d ile x yazdır */
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
int x = 5;
int *ptr = &x;
*ptr = 30;
printf("%d\n", x);
return 0;
}Beklenen çıktı
30
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İşaretçi operatörlerini eşleştir
| Kavram | Anlamı |
|---|---|
& |
adres alır |
* |
değere erişir |
int * |
işaretçi türü |
NULL |
boş işaretçi |
2 Erişme ile değer oku
int x = 7;
int *ptr = &x;
printf("%d\n", ____); /* 7 yazar */
int x = 7;
int *ptr = &x;
printf("%d\n", *ptr); /* 7 yazar */
Açıklama: *ptr, ptr'nin gösterdiği değeri verir.
3 `*ptr = 99;` ataması neyi değiştirir?
- ptr'nin gösterdiği değişkeni
- ptr'yi Doğru cevap
- Hiçbir şeyi
- Sadece ptr'nin adresini
Açıklama: *ptr ataması, ptr'nin gösterdiği adrese yazar; yani o değişkeni değiştirir.