c語言中,指針*位置應該放哪裏?

從語法上來說,如下都對:
int* p;  // OO Style, Type emphasis
int *p;  // Procedural style, Expression emphasis
int * p; // Unconventional Style, No emphasis


結論:
我選擇 int* p;


爲什麼:
缺點:
1  int* p, p1; 這種情況,會誤以爲p1爲指針,實際上是int型。
   int *p, *p1;這是支持這種寫法的主要原因。
   (1) 不建議一行定義多個變量。
   (2) 可以寫成int* p, * p1;
優點:
1  強調類型。
2  int* fun(); 比 int *fun(); 從視覺上,更容易看清楚返回的是指針類型。
   特別是,從視覺上int (*fun_p)();區別更大一些。避免將函數指針,認爲是返回指針的函數。
3 int const * p; 和const int*  p;含義一樣,
  int* const p; 和 int * const p一樣,
  用const int* const p;寫法,最兼容幾種寫法。

please read:
http://stackoverflow.com/questions/377164/whats-your-preferred-pointer-declaration-style-and-why
發佈了28 篇原創文章 · 獲贊 7 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章