CodeBlanks Logo Icon CodeBlanks

* 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

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

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

Soru
int x = 7;
int *ptr = &x;
printf("%d\n", ____);  /* 7 yazar */
Cevap
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.

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