C ,函式內交換兩個指標的指向,求助

時間 2023-03-25 06:55:03

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...