SORU
19 Aralık 2008, Cuma


C dizilerle, neden davayı bir[5] == 5[a]?

Joel C Programming Language 17*, (nam-ı diğer: K & R) belirttiği gibi, C dizilerin bu özellik söz vardır: a[5] == 5[a]

Joel işaretçi aritmetiği yüzünden ama hala anlamıyorum diyor.Neden a[5] == 5[a] yapar?

CEVAP
19 Aralık 2008, Cuma


C standardı aşağıdaki gibidir: [] operatör tanımlar

a[b] == *(a b)

Bu nedenle a[5] değerlendirir:

*(a   5)

ve 5[a] değerlendirir:

*(5   a)

ve ilkokul matematik gelenler eşit olduğunu biliyoruz. (Ayrıca*.* 19)

Bu diziler "a" Bir bellek adresidir. işaretçiler gibi davranıyor, doğrudan eserdir "a[5]" 5 değerdirelemanları"a". daha fazla Bu elemanın adresidir "a 5". Bu "" "5" öğeleri başından adres alanı (5 a). a uzaklık eşittir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Google Analytics

    Google Analy

    25 ŞUBAT 2008
  • Learn word 2013 tutorials

    Learn word 2

    5 AĞUSTOS 2014
  • Willie D.

    Willie D.

    16 Aralık 2006