1樓:匿名使用者
估計是*&head被翻譯成引用了,如果是*head,則傳進來的是一個值,在外部的那個變數的值沒被更改,所以沒出正確結果.如果是引用的話,外部的那個變數的值就會被改變.你試試看.
2樓:匿名使用者
首先指出你理解的一個錯誤,「p和*&p應該都是代表同一個記憶體儲存單元的地址」這句話沒錯,但是它是有條件的,是在對變數的引用中才正確。
在本題中形參是對變數的宣告,並不是對變數的引用。所以你的形參為指標的引用。即 node *&head 為實參的引用。
要想將其換為*head,必須return head;之後呼叫時獲得新的head。
看來你是把指標的定義沒搞清楚。指標同其他變數一樣也是一個變數。給個例子,自己慢慢比較比較!
void swap(int & m,int & n)//若為swap(int m,int n)將不會交換。
int m,n;
swap(m,n);
將m,n換為指標即變成了
void swap(int* & m,int* &n)//若為swap(int * m,int * n)也將不會交換。
int * m,* n;
swap(m,n);
c++指標裡面 &(*p)和*(&p)有啥區別?
3樓:鏡面世界
呃⋯⋯第二個前面無運算子相當於p,有運算子且p是函式名或函式指標時,加括號相當於p,不是則無意義,p是函式名且返回指標且是呼叫時,不加括號是返回的指標的間接引用,第一個p不是指標的話無意義,如果是指標(什麼指標都行,包括函式指標等不常用的,但不能是野指標,執行時會報錯),如果這個表示式前面是運算子號,相當於p,如果前面是另一個表示式,是*p與那個表示式位與,p是函式指標時加括號相當於p,p是函式指標或函式的二級指標且該函式返回引用時是返回的引用的記憶體地址。(呼!累死我了,給個滿意啊!
看不懂的話等我有時間弄個**)
c++的指標變數中,*p與p有什麼區別?
4樓:匿名使用者
#include
void main()
程式輸出屬結果:
*p=5
p=0x0012ff7c
press any key to continue
5樓:匿名使用者
p指向的是地址,*是解除操作符,加在p前面是為了獲取儲存在這個地址的值
6樓:匿名使用者
int p = 10; // p 為一個整形變數
int *pn = &p; // *pn為一個指向p的指標.
7樓:匿名使用者
*p 值得是該指標指向的變數的值p指的是該指標指向的變數的記憶體地址
c++裡的**p和&p有什麼區別?(p是指標)
8樓:匿名使用者
**p是取得指標p所在的地址的值,而&p是取指標p所在的地址
c++,請問*p=&a與p=&a(p是指標)有什麼區別
9樓:匿名使用者
p=&a容易理解,就是把變數a的地址存在指標p。*p=&a是把變數a的地址存放在指標p所指向的記憶體單元
10樓:匿名使用者
打個比方
int a = 1000;
int * p;
假設a存放於記憶體中的22222這個地址,那麼*p=&a相當於i=22222,而p=&a相當於使p指標指向a
11樓:匿名使用者
第一個是p指向的記憶體單元存上a的地址,第二句是p的值是a的地址
c++中定義了p是一個指標,然後後面用到時p和*p分別代表什麼?
12樓:匿名使用者
p是指向目標的地址,*p是指向的目標(變數)
13樓:匿名使用者
p=&a,指標p指向a,它的內容(也即*p)是a的值(*p=a)
*p=﹠a,指標p的內容是a的地址,也即*p=&a
在c++中 *(p++)和*(++p)有什麼區別?為什麼會這樣?
14樓:匿名使用者
*(p++)指向p,並且執行後p指向下一個要素,可以等價拆分為兩句:
*(++p)指向p的下一個要素,並且執行後p指向下一個要素,可以等價拆分為
舉例int a[10];
int* p=a;
*(p++)=1;//本句執行前p指向a[0],結果是a[0]=1,並且p指向a[1];
*(++p)=2;//本句執行前p指向a[1],執行結果是a[2]=2,並且p指向a[2];
15樓:誰也整不了你
p++後生效,等到下一個;之後p才變成p+1。
++p即時生效,執行完之後p就變成p+1了。對吧?
16樓:匿名使用者
*(p++)是先去p指向的資料在使指標p自加
*(++p)是先使指標p自加再去p自加後所指向的資料
17樓:我家顏
前者是先得到*p的值然後p自增1 後者是先對p自增1,然後取自增1以後p所指向的值
18樓:立地化魔
++在後是先引用後賦值
++在前是先賦值後引用
c語言中p和p1有什麼區別,C語言中p 和p 1有什麼區別?
第一句應該是p p 1吧。這2句的結果是一樣的,相信樓主也是知道的,都表示p 1然後結果儲存在p中。但是所有的研發還是實驗,如果碰到自加1的運算都會選擇p 這裡面的關鍵點是p 的運算速度比p p 1快,雖然一條語句說快能塊多少呢?但是運算步驟少,不僅僅是提高速度,而且可以減少出錯的機率,這對於工程來...
如何在c語言二維陣列中使用指標,c語言中二維陣列的指標如何表示
對於a i j 二維陣列的大小為n m 而言,首先要搞清楚行指標和列指標 行指標 a i 或者a i指向行,a i a i a i 列指標 a i 或 a i 指向列,a i 等價於 a i 元素的引用方式有如下三種方式 1.通過地址引用二維元素 a i j a i j a i j a 0 m i ...
c語言p跟p什麼區別啊,C語言 p 和p的區別?
舉例 int a 3 a是一個整型變數,值為3int p a p是一個指標,指向a的地址說p,就是指標,p 是指標指向的內容,即a地址中的內容 實際上 p 和a 這個應該是一個意思了 對初學者來說,主要是分辨 號出現的位置,下面舉例說明。int i 2 int p i 出現在定義中,表示型別 int...