在c 中,int p和int p有什麼區別

時間 2021-06-25 14:41:58

1樓:風若遠去何人留

int &p為引用,而int p為定義變數。二者區別如下:

1 引用在定義的時候必須賦值,否則編譯會出錯。正確的形式為int &p = a;

其中a為int型變數。

2 引用在定義時不會分配空間,只是初始化變數的一個別名。如int &p = a;的形式,後續對p的操作,與對a操作完全等價。

2樓:匿名使用者

一個為指標形態,一個只是單純的變數而已。

如此題所示,func宣告時p為指標,q為變數,因此main中呼叫func傳入x和y時,x傳遞的是地址(address or reference),y只是變數,因此y的值不會因為func中的運算而改變,但是x會。

3樓:deqr雲飄

(1)給這個程式加上註釋(可選) lz的**有貼上錯誤,現簡單註釋如下: #include /*包含標頭檔案*/ void main() /*主函式*/ { long int num; /*宣告長整型變數,用來儲存輸入的數值*/ int indiv,ten,hundred,thousand,ten_thousand,place; /*宣告整型的數位變數(個位,十位,百位,千位,萬位)及數位個數*/ printf("請輸入一個正整數(0~99999):"); /*提示輸入整數*/ scanf("%ld",&num); /*輸入長整數*/ if(num>9999) /*按照從大到小的順序進行判斷,如果大於9999,說明輸入的是5位數*/ place=5; /*位數變數值置為5*/ else if(num>999) /*如果大於999,說明輸入的是4位數*/ place=4; /*位數變數值置為4*/ else if(num>99) /*如果大於99,說明輸入的是3位數*/

place=3; /*位數變數置為3*/ else if(num>9) /*如果大於9,說明輸入的是2兩位數*/ place=2; /*位數變數置為2*/ else place=1; /*否則置為1*/ printf("位數:%d",place); /*輸出數值的位數*/ printf("每位數字為:"); /*提示每位數字的輸出*/ ten_thousand=num/10000; /*整型數除10000,得到萬位*/ thousand=(int)(num-ten_thousand*10000)/1000; /*輸入的數值減去萬位*10000,剩下的千位數,然後再除以1000,得到千位個數*/ hundred=(int)(num-ten_thousand*10000-thousand*1000)/100; /*餘下類推,方法同上*/ ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10; indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10); switch(place) /*以下是根據數值位數進行判斷,以輸出不同位數的數值及相應個位數*/ { case 5:

printf("%d,%d,%d,%d,%d",ten_thousand,thousand,hundred,ten,indiv); /*輸出正常順序數值*/ printf("反序數字為:");

在c++中,“int &p”和“int p” 有什麼區別?

4樓:匿名使用者

int &p為引來用,而int p為定義變數。二者源區別如下:

1 引用在bai定義的時候必須

du賦值,否則編zhi譯會出錯。正確的形式為daoint &p = a;

其中a為int型變數。

2 引用在定義時不會分配空間,只是初始化變數的一個別名。如int &p = a;的形式,後續對p的操作,與對a操作完全等價。

c++中int*&p和int&*p的區別

5樓:仁昌居士

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無法訪問得到表示引用的儲存的數值。

6樓:匿名使用者

int &*p; 是不正確的,*與p靠得最近,所以p是一個指標,但是這個指標的型別是int &,所以這個是錯吳的, 因為不能建立引用的指標。

int *& p, 是正確的, &與p靠得最近,所以p是一個引用,這個引用的型別是int*,也就是一個指標變數的引用,但是必須初始化,否則也是錯誤的。.

7樓:匿名使用者

如果按照正常的解讀(從右到左),

int*&p 是 指標的引用。 他是一個 指標 的 別名,一般可以當成 指標 使用。有時候,可以直接他的值,成為其他指標的引用

int&*p 是 引用的指標,這個是非法的,指標不能指向引用。引用不具有確定的儲存,無法間接訪問得到表示引用的儲存的左值,所以乾脆人為規定禁止構造指向引用的指標型別。

8樓:匿名使用者

前者是地址的指標

後者是指標的地址

C語言指標,int p和int p,其中p是不是相同的變數?為啥號的位置不同呢

夢幻陽光 樓主對變數的概念還不是很瞭解 定義一個變數的時候,不管前面有多少東西,都是型別,只有最後面的是變數名 如 int a a為變數,改變數為int型 int b,int b 這兩個是一樣的,b為變數名,int 為修飾的型別,此處為int行的陣列 int c c為變數名,int 為修飾的型別,此...

在C中for迴圈和foreach迴圈有什麼區別

給你講4個迴圈 當你想重複執行某些語句或語段時,依據當前不同的任務,c 提供4個不同的迴圈語句選擇給你使用 for 語句 foreach 語句 while 語句 do 語句 1.for 當你預先知道一個內含語句應要執行多少次時,for 語句特別有用。當條件為真時,常規語法允許重複地執行內含語句 和迴...

c 中 什麼意思, 在C 中是什麼意思

小炫馬紮 雙冒號 操作符被稱為域操作符 scope operator 含義和用法如下 1.在類外部宣告成員函式。void point area 2.呼叫全域性函式 表示引用成員函式變數及作用域,作用域成員運算子 例 system math sqrt 相當於system.math.sqrt 3.呼叫類...