您能否告訴我int* p
和int *p
聲明之間的區別?int * p和int * p聲明之間的區別
11
A
回答
31
有沒有區別。
這是一個表示法,而不是語義學。二是少誤導,因爲
int *a, b;
清楚地聲明一個int*
和int
,而
int* a, b;
看起來好像它是聲明瞭兩個三分球,當它真正做上述同樣的事情。
3
這兩個聲明在聲明單個指針時是等效的。對於這個更多看link
17
這是一個很好的問題。
int* p
- 被C廣泛使用++程序員
int* p, q
錯誤地意味着既p
和q
是指針(導致偏好用於聲明此兩行上,這也提高了可讀性當存在是作業,並且使得更容易快速地剪切/粘貼或評論特定的線/變量)int* p
視覺separ茨從標識符*p
然後明確地指示取消引用類型(假設你把空間周圍的二進制operator*
ALA2 * 3
) 在C++
- 顯然服用而
...& x
必須聲明一個參考變量的地址,並... & ...
是按位與運算
...&x
int *p
- 廣泛使用d by C程序員
int *p, q
明確反映p
是指針而q
不是。int *p
視覺混淆與所述標識符的類型- 目視從指針引用不可區分的(更好或更壞)
類似地,對於出現在函數聲明類型...
int* f(), g(); // declares int g();
int *h(), (*i)(); // i is pointer to function returning int
int *const*m(), n(); // m returns pointer to (const-pointer to int)
// n returns int
...但至少函數參數不能變得如此毛茸茸 - 類型規範在每個逗號分隔符後重新開始。
綜上所述,int *p
是更好,如果您的編碼風格/代碼庫利用上的源代碼一行多個聲明,否則int* p
提供類型的更清楚的分離和下面的標識符。
對於這一切,人們的偏好很大程度上取決於他們習慣了什麼。
0
這兩個聲明是完全一樣的!
相關問題
- 1. int p = *(int *)i和int p = *(int *)&i之間的區別
- 2. int * p =&a ++和int * p =&++ a
- 3. '%p'和'my%p'之間的區別?
- 4. 關於「int const * p」和「const int * p」
- 5. 應該int * p長int * p而不是?
- 6. 函數中* p和(* p)[3]之間的區別是什麼?
- 7. int someInts [3]和int * someInts = new int [3]之間的區別?
- 8. p :: first-letter和p :: first-letter之間的區別是什麼?
- 9. * p [5]和(* p)[5]之間的區別是什麼?
- 10. int(* p)[4]?
- 11. $('。p')和$('p')jquery之間有什麼區別?
- 12. uint和unsigned int之間的區別?
- 13. C#中char和int之間的區別#
- 14. Python 3.5 - '//'和'int()'之間的區別
- 15. int,NSInteger和NSUInteger之間的區別
- 16. 函數定義中的指針與數組:void fct1(int * p)和void fct1(int p [])有什麼區別?
- 17. Java中的int a [5],int a [],int a [] = {2,3}之間的區別
- 18. 新的int和new(int)之間的C++有什麼區別?
- 19. '(int)a','a as int'和C#中的Convert.ToInt32(a)之間的區別
- 20. foo(int * arr)和foo(int arr [])之間的任何區別?
- 21. 最終靜態int和靜態最終int之間的區別?
- 22. int [] []和int [,]之間的區別是什麼?
- 23. 返回值之間的區別int&和const int&
- 24. int fpurge()和int fflush()之間的區別C
- 25. C++中新int()和新int {}之間的區別
- 26. 傳遞(int x)和(const int x)之間的區別
- 27. 「Convert.ToString(Nullable <int>)」和「Nullable <int> .ToString()」之間的區別?
- 28. int(floatvar)和(int)floatvar之間是否有區別?
- 29. 聲明變量之間的區別
- 30. x = * p ++和* p ++; x = * p in c有什麼區別?
很好的解釋 – cc4re 2013-06-22 19:32:59