1. 程式人生 > >C++中關於int *p和 int* p的區別?

C++中關於int *p和 int* p的區別?

根據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;則和上式表示的含義完全一樣,但是更加清晰,不會造成誤導。

不過對於以上兩種寫法的使用,主要看個人的習慣,但是最好不要混用。