根據c++primer介紹:
對於int* p(這種寫法合法,但是容易造成誤導),其基本資料型別是int,後面的*其實是宣告符。在一組公用的資料型別後面可以使用不同的宣告符。
例如: int i =1024, *p = &i, &r = i; //i是乙個int型別的資料,p是乙個int型的指標,r是乙個int型引用。
對於int *p,其和int* p 的含義一樣,都表示int型別的指標變數p。
但是將宣告符緊跟著變數名是一種更容易理解的做法。否則可能會出現誤導現象:
例如 int* p1, p2;表示含義是p1是乙個int型的指標,p2是乙個int型變數。而不是p1,p2都是指標變數,它們共用的是基本資料型別部分。
如果寫成int *p1,p2;則和上式表示的含義完全一樣,但是更加清晰,不會造成誤導。
不過對於以上兩種寫法的使用,主要看個人的習慣,但是最好不要混用。
C 中int p和int p的區別
c 中int p和int p的區別 int p 是正確的,與p靠得最近,所以p是乙個引用,這個引用的型別是int 也就是乙個指標變數的引用,但是必須初始化,否則也是錯誤的。int p 是不正確的,與p靠得最近,所以p是乙個指標,但是這個指標的型別是int 所以這個是錯吳的,因為不能建立引用的指標。i...
在C中int p 和int p 作為形參
假定int p 0xfff0,p 0xffff 中的位址可能不一樣 void fun1 int p 對應的呼叫函式為fun p 傳遞的為p的值,及0xfff0 形參型別為指標型別int 在其中p為形式引數,可理解為傳遞的為p的值0xfff0 void fun2 intp 對應的呼叫函式為fun p ...
int p 4 和int p 4 的區別
int p 4 因為 比 的優先順序高,所以p先於 結合,是乙個陣列,然後再與 結合,所以這個陣列跑p 4 的型別是int 就是指向int的指標,就是 元素是指向整形資料的指標的陣列 每個元素都是乙個指標,一共有4個元素。指標就是位址本身,而指標變數是用來存放位址的變數。而int p 4 p先和 結...