在c中,intp和intp有什麼區別

2021-03-04 01:14:21 字數 2464 閱讀 9493

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語言就會展現出它的侷限性 正是因為有大規模的程式需要去處理...