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

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • FrankJavCee

    FrankJavCee

    29 Kasım 2008
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011