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

  • CaptainDisillusion

    CaptainDisil

    18 EYLÜL 2007
  • lissaandbeauty

    lissaandbeau

    24 Aralık 2011
  • metallmanutza13

    metallmanutz

    13 NİSAN 2007