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ş:
Neden sıralanmamış bir dizi daha hızlı...
Neden bu iki kez (1927) garip bir sonu...
Neden HTML düşün” renk? “chucknorris m...
Neden Google while(1); JSON yanıtların...
Neden char[] şifreler için Dize Java t...