C çalışma soruları – 30 (göstericiler)

Aşağıdaki C programı çalıştırıldığında bu programın çıktısı ne olur?

Sorunun yanıtı şu seçeneklerden biri de olabilir:
Sentaks hatası (derleme zamanı hatası)
Tanımsız davranış.
Derleyiciye göre değişir.

Cevabı buradan görebilirsiniz

Necati Ergin

C ve Sistem Programcıları Derneğinde eğitmen olarak çalışıyor.

Bunlar da ilginizi çekebilir

C çalışma soruları – 30 (göstericiler)” için 2 yorum

    1. Merhaba Osman Bey,

      tanımlamalarından sonra p gösterici değişkeni a dizisini gösteriyor.

      demek ile

      demek aynı anlamda. Yani bu ifade p nesnesinin kendisi demek.

      demek ile

      nesnesine erişme girişiminde bulunuyorsunuz. Bu bellek alanı sizin için ayrılmış olmadığından bu erişme girişimi her şeyden önce bir çalışma zamanı hatası (runtime error) demek. Sonuç olarak bu nesnenin değerini ekrana yazdırma girişimi
      çalışma zamanı hatası. Böyle bir kod yazılmamalı. Sizin kodunuzu çalıştırdığınızda ekrana çöp değerler yazdırılmış.

      ifadesi ile ise [] işleci * işlecinden daha yüksek önceliğe sahip olduğu için p‘nin gösterdiği nesnenin ilk öğesinin adresini yani a dizisinin adresini kullanmış oluyorsunuz.
      Yani aşağıdaki ifadelerin hepsi aslında aynı adres:

      Benzer şekilde eğer

      ifadesi ile a dizisinin 2. öğesinin, yani 1 indisli öğesinin adresini kullanmış olurdunuz. Yani aşağıdaki ifadelerin hepsi aynı adrese karşılık geliyor:

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kod Eklemek İçin Okuyun