可能重複:
In C, why is the asterisk before the variable name, rather than after the type?
What's your preferred pointer declaration style, and why?*或&事項的位置?
在C++中,我看到指針放在不同的方式。例如,
char* ptr
char * ptr
char *ptr
以上3個例子是否相同? (&也一樣)
可能重複:
In C, why is the asterisk before the variable name, rather than after the type?
What's your preferred pointer declaration style, and why?*或&事項的位置?
在C++中,我看到指針放在不同的方式。例如,
char* ptr
char * ptr
char *ptr
以上3個例子是否相同? (&也一樣)
沒關係。 (例如,它們是相同的。)甚至可以在沒有任何空白的情況下寫入char*ptr;
。
儘管在一行上有多個聲明:char* ptr, noptr;
。這裏,第三種語法更清晰:char *ptr, noptr;
。
我的規則,以避免混淆:每行只有一個變量。另一種方法把事情做對沒有可能錯過一個*
:typedef
指針,例如:
typedef char* CharPtr;
CharPtr ptr1, ptr2; // now both are pointer
雖然那麼你需要知道的其它事情,比如const
湖,所以我堅持到上面提到的我的規則:
typedef char* CharPtr;
const CharPtr p1; // const char* ?? or char* const ??
CharPtr const p2; // char* const ?? or const char* ??
// Eg.: Can't the pointer or the pointee be changed?
(以及上述所有的也適用於引用&
。)
C++是自由格式語言。所以,在這種情況下,空間並不算真正的意義,所有的意思都是一樣的。
是的。我喜歡用無(額外)空白區域編寫我的代碼。或者任何空白區域都應該是「\ n」。兩者都使它讀起來很有趣。 – 2011-04-04 21:43:26
C人傾向於喜歡char *p
,而C++人傾向於喜歡char* p
(至少Bjarne)。編譯器不關心空白,你可以說char * p
或char*p
。
很多人說char* p
是危險的,因爲char* p, q
可能會令人困惑。原則上這是正確的,但是:
爲了增加可讀性,您不應該在一次聲明中聲明多個名稱。
更重要的是,在C++中,您通常應該比RAI類型優先於原始指針。
他們都工作。char *ptr
經常提倡,因爲它使得它更清楚什麼是在這種情況下發生:
char *ptr, var;
聲明一個字符指針和一個char。
C++人強調類型,而C人強調使用。
所以你在C++中看到char* x
,這是因爲「x
的類型是指向字符的指針」。 C++有一個強大的語言所依賴的類型系統。這是而不是 C中的情況。
在C中,您根據您想要對它們執行的操作聲明變量。當你在C中看到char *x
時,思考過程是「當你取消引用x時,你會得到一個字符」。又如:
char (*f)(int);
寫着「當你提領f
,並用INT調用它,你就會得到一個char」,即。 f
是一個指向一個函數的指針,它接受int並返回char。
另見:[this question](http://stackoverflow.com/questions/398395/in-c-why-is-the-asterisk-before-the-variable-name-rather-than-after-the - 類型),[這個問題](http://stackoverflow.com/questions/558474/what-makes-more-sense-char-string-or-char-string),[這個問題](http:// stackoverflow .com/questions/2660633/declaring-pointers-asterisk-the-the-left-or-right-of-the-space-between-the-type-a)和[this question](http://stackoverflow.com)/questions/377164/whats-your-preferred-pointer-declaration-style-and-why) – eldarerathis 2011-04-04 21:28:34
句法和美學糖! – 2011-04-04 21:41:13