2012-09-27 213 views
3

可能重複:
In C, what is the correct syntax for declaring pointers?指針Ç - 聲明

我用C語言的戰鬥。指針對我來說是新的,我認爲我越來越接近理解它們。

我雖然有一個問題。

之間有什麼區別:

int k = 4; 
int* pcp = &k; 

int k = 4; 
int *pcp = &k; 

我似乎無法找到指針的這些聲明之間有什麼區別,它只是語法糖 - 或有什麼不同?

謝謝

+0

唯一的區別是放置空間的位置。在語義上,它們是相同的。 –

+0

這不是「語法糖」......這根本不是那個詞的意思。這與指針無關...... –

回答

5

有這些聲明沒有區別,但有下列之間的差異兩個聲明:

int* p, p2; // declares a pointer to int and a regular int 

和:

int *p, *p2; // declares two pointers to int 

可能是由你的榜樣隱藏。

所以我更喜歡第二個聲明。

+2

這就是爲什麼通常將'*'粘貼到變量名稱 - 'int * p,p2;'是痛苦的原因。 –

+0

@DavidSchwartz不,通常最好爲每個指針使用單獨的聲明,並將'*'粘合到基本類型,因爲它屬於它的位置。 –

-2

你可以自己嘗試一下。只需要輸入兩個,printf的,看看會發生什麼:P

如果我不是非常錯誤的,雖然,這是相同的;)