1樓:匿名使用者
int &p為引來用,而int p為定義變數。二者源區別如下:
1 引用在bai定義的時候必須
du賦值,否則編zhi譯會出錯。正確的形式為daoint &p = a;
其中a為int型變數。
2 引用在定義時不會分配空間,只是初始化變數的一個別名。如int &p = a;的形式,後續對p的操作,與對a操作完全等價。
我想知道int *p與int* p有什麼不同
2樓:大野瘦子
一、意思不同
int *p和int* p後者比前者更好理解為指標。int *p;可能會被理解為一個變數,名為*p,int* p;很直觀的被理解為一個指標,名為p。
二、強調型別不同
*p是一個int』這裡*和p綁在了一起——這就是c的風格,這種風格強調的是語法。而一個典型的c++程式設計師會寫「int*p」,並告訴你「p是一個指向int的指標,p的型別是int*」。這種風格強調的是型別。
三、用法不同
int* p, p1; // probable error: p1 is not an int*
這裡,把*放得離p近一點也同樣不能澄清問題:
int *p, p1; // probable error
為了保險起見,只好一次宣告一個變數了——特別是當宣告伴隨著初始化之時。
int* p, p1; // probable error: p1 is not an int*
而int* p = &i;
int p1 = p; // error: int initialized by int*
它會報錯。
3樓:匿名使用者
c++作者對這個有過解釋,連結為
對應內容翻譯如下(來自
q: 「int* p;」和「int *p;」,到底哪個正確?
4樓:青鳥中關村專家
從語法上講,沒有區別。
從命名規範上講,int *p和int* p後者比前者更好理解為指標。
int *p;可能會被理解為一個變數,名為*pint* p;很直觀的被理解為一個指標,名為p建議平時採用後者書寫。
5樓:藍之墮落哀傷
這個真沒不同,是一樣的,編譯出來都是指標型別的變數,不過良好的書寫習慣是前面那種方式,不容易誤解看錯。
6樓:匿名使用者
頂多就是寫法的區別,其實沒有區別,都是定義int型的指標p,編譯器編譯出來都一樣的,所以這兩個沒有區別。
7樓:匿名使用者
int *p p是指標,指向int變數。
int* p p是變數,它儲存一個指向int的指標的值
8樓:淡騰搖銘
一樣的,但是最好標記符緊挨定義變數
9樓:我了個去_去啊
一樣的啊 習慣而已
c++中int*&p和int&*p的區別
10樓:仁昌居士
c++中int *&p和int &*p的區別為:性質不同、 使用不同、訪問不同。
一、性質不同
1、int *&p:int *&p是指標的int型別引用。
2、int &*p:int &*p是引用的int型別指標。
二、 使用不同
1、int *&p:int *&p是指標 的 別名 ,可以當成指標使用。
2、int &*p:int &*p指標不能指向引用,不具有確定的儲存,無法直接使用。
三、訪問不同
1、int *&p:int *&p可以直接訪問得到指標指向的數值。
2、int &*p:int &*p無法訪問得到表示引用的儲存的數值。
11樓:匿名使用者
int &*p; 是不正確的,*與p靠得最近,所以p是一個指標,但是這個指標的型別是int &,所以這個是錯吳的, 因為不能建立引用的指標。
int *& p, 是正確的, &與p靠得最近,所以p是一個引用,這個引用的型別是int*,也就是一個指標變數的引用,但是必須初始化,否則也是錯誤的。.
12樓:匿名使用者
如果按照正常的解讀(從右到左),
int*&p 是 指標的引用。 他是一個 指標 的 別名,一般可以當成 指標 使用。有時候,可以直接他的值,成為其他指標的引用
int&*p 是 引用的指標,這個是非法的,指標不能指向引用。引用不具有確定的儲存,無法間接訪問得到表示引用的儲存的左值,所以乾脆人為規定禁止構造指向引用的指標型別。
13樓:匿名使用者
前者是地址的指標
後者是指標的地址
c語言中intp4和intp
int p 4 定義一個指標陣列,該陣列中每個元素是一個指 針,每個指標指向 就需要程式中後續再定義了。int p 4 定義一個陣列指標,該指標指向含4個元素的一維陣列 陣列中每個元素是int型 區分int p n 和int p n 就要看運算子的優先順序了。int p n 中,運算子 優先順序高,...
在C 中int和long有什麼區別,自動型別轉化為什麼從int轉換成long
都是整bai數型別,以前老的編譯器duint 16位 long 32位,現在zhi好多編譯器int 和long一樣。dao自動轉內 換是內建規則,容即隱式轉換,因為int 轉long不會丟失資料,但如果long轉成int,有些編譯器可能位寬不一樣,會丟失資料。在c 中怎麼把long轉換成int 強制...
c和c中《是什麼意思有什麼區別
和 在c中是用來做位運算的,在c 中被過載了,即可以做位運算也可以做輸入輸出流。區別如下 1 應用場合不同 c語言是結構化和模組化的語言,是程序導向的。當程式的規模較小時,c語言運用起來得心應手。但是當問題比較複雜 程式的規模比較大的時候,c語言就會展現出它的侷限性 正是因為有大規模的程式需要去處理...