1樓:網友
void exchge(int* p1, int* p2)改成這樣就可以了。
腦袋裡要有個記憶體的概念。
int* tmp=p1;
p1=p2;
p2=tmp;
只是交換了區域性變數p1、p2的值。
2樓:匿名使用者
這樣的交換不起作用,因為子函式。
裡面。你把傳過去的指標交換了一下,但是它的指向沒有改變,因此你輸出的時候,不會改變。
因此,你應該把子函式里的int *tmp 改為int tmp,然後全部值交換,這樣:
void exchge(int* p1, int* p2)
3樓:延慧利
把函式修改成這樣就可以了:
void exchge(int* p1, int* p2)
因為這裡是按引用傳遞的,所以只要直接對值進行互換,陣列裡面的值就會互換。
4樓:匿名使用者
void exchge(int** p1, int** p2) /需要交換地址的話,這裡要傳指標的指標。
5樓:羿烴
你這個函式呼叫相對於指標而言是傳值,而不是傳址。。。
c語言中如何交換兩個指標變數的的值
6樓:小小歐平兒
1、首先,就是最基本的知識,寫標頭檔案、函式宣告、定義變數。
2、下面還需要定義指標,需要定義兩個指標p1和p2,然後把a的地址賦值給p1,把b的地址賦值給p2。
3、然後就是呼叫函式,該函式沒有返回值,就直接呼叫,但是引數進入的是a和b的地址,而不是a和b。
4、函式點用完之後,就是輸出a和b的值看一看是否互換了。
5、首先,a和b的地址傳給x和y,通過指標直接對a和b的值進行操作。
6、最後,就是調換*x和*y的值,這樣就是實現了a和b的值。
7樓:匿名使用者
交換兩個指標變數的的值有兩種不同的形式:
在指標定義所在函式交換兩個指標變數的值。
這種交換,與交換兩個整型變數的值方法相同,分三步:
先將pa儲存到臨時變數pt中,再將pb儲存到pa中,最後將pt儲存到pb中。
通過自定義函式進行交換兩個指標變數的值。
這種交換,必須要傳遞兩個指標變數的地址到自定義函式中(即函式的形參是二維指標),然後在函式中對收到的二維指標變數中的內容進行交換,即可實現實參的交換。
8樓:匿名使用者
定義一箇中間變數t(也是結構體型別的):
t=p1;p1=p2;
p2=t;就行了。
9樓:匿名使用者
定義一個指標變數temp,*temp=*p1;*p1=*p2;*p2=*temp;
c中指向函式的指標初始化和使用,請教C 中函式型指標和指標型函式的用法和區別,謝謝
牽著你的手 c 指向函式的指標定義方式為 返回型別 指標名 函式引數列表 例如 void p int 是指向一個返回值為void 引數為int型別的函式。而若想定義一個指向類成員函式的函式指標該怎麼定義呢?對成員函式指標的使用。1 非靜態成員函式 定義方式 返回型別 類名 指標名 函式引數列表 例如...
C 定義函式,有引數,實現對實參值的交換,用指標和引用2種方式實現
如下 void cmp int a,int b void cmp int a,int b 飲冰軒者 include main 這是引用,指標和這個差不多 include main 這是指標,求採納 void swap1 int a,int b 指標 void swap2 int a,int b 引用...
C語言問題 怎樣用指標和函式實現兩個陣列的交換
形參定義為指標變數可以實現實引數組交換 include void swaparr int a,int m,int b,int n void main int b int i,m,n m sizeof a sizeof int n sizeof b sizeof int printf n交換前的陣列a...