2011-06-01 122 views

回答

10

第一個是指針〜8點的整數的數組,而第二個是8的陣列指針,各爲整數。

如果你只踢了cdecl,這是美妙的這樣的事情:

pax$ cdecl 
Type `help' or `?' for help 

cdecl> explain int (*p)[8]; 
declare p as pointer to array 8 of int 

cdecl> explain int *p[8]; 
declare p as array 8 of pointer to int 

cdecl> explain char*(*fp[])(int,float*); 
declare fp as array of pointer to function (int, pointer to float) 
    returning pointer to char 

實際上,有一個clockwise/spiral rule,你可以用它來做到這一點在你的腦袋,但我沒有,因爲擔心該我發現cdecl,出於同樣的原因,我不再將大的任意32位數字從十進制轉換爲十六進制在我的頭上 - 我如果我必須但可以用更容易---)

+0

我其實更喜歡C,因爲它通常比英語更清晰(可能因爲我不是母語)。 – AoeAoe 2012-03-15 21:37:37

4

第一p是一個指針,指向8 int數組。 第二個p是8個指向int的指針的數組。

+4

+1另外**數組不是指針,指針也不是數組** :) ... @Hanafuda:閱讀[c-faq](http://c-faq.com/)的第6部分... *歡迎來到SO *。 – pmg 2011-06-01 14:01:04

相關問題