2009-11-21 31 views

回答

9

在原料C,該[]符號只是一個指針數學幫手。 []之前,你會尋找該塊中的第四個字符由ptr喜歡指出:

*(ptr+4) 

然後,他們引入了看起來更快捷:

ptr[4] 

其中transaltes早前表達。但是,如果你會寫這樣的:

4[ptr] 

這將轉化爲:

*(4+ptr) 

這確實是一回事。

+0

處提供字符,所以chars是指向char []的開始處的指針。陣列。對? – 2009-11-21 20:28:15

+0

是的,這正是一個C數組。這是一個指向數組的第一個元素的指針 – Andomar 2009-11-21 20:33:25

+4

技術上不太完美 - 參見:http://www.lysator.liu.se/c/c-faq/c-2.html(但爲了這個答案的目的,他們足夠接近!) – SimonJ 2009-11-21 20:38:13

5

因爲[b]與*(a + b)完全相同,並且+是整數。

chars[4]*(chars+4),並且4[chars]*(4+chars)

+0

什麼是char + 4?什麼是*(chars + 4)? – 2009-11-21 20:20:10

+0

char + 4是指向數組中第四個字符的指針,*(chars + 4)將此指針取消引用,以便在字符[4]位置 – rzrgenesys187 2009-11-21 20:25:38