c語言中如何交換兩個指標變數的的值

時間 2021-05-05 13:43:56

1樓:小小歐平兒

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的值。

2樓:匿名使用者

交換兩個指標變數的的值有兩種不同的形式:

在指標定義所在函式交換兩個指標變數的值

這種交換,與交換兩個整型變數的值方法相同,分三步:

先將pa儲存到臨時變數pt中,

再將pb儲存到pa中,

最後將pt儲存到pb中

通過自定義函式進行交換兩個指標變數的值

這種交換,必須要傳遞兩個指標變數的位址到自定義函式中(即函式的形參是二維指標),然後在函式中對收到的二維指標變數中的內容進行交換,即可實現實參的交換。

3樓:匿名使用者

定義乙個中間變數t(也是結構體型別的):

t=p1;

p1=p2;

p2=t;就行了

4樓:匿名使用者

定義乙個指標變數temp,*temp=*p1;*p1=*p2;*p2=*temp;

5樓:匿名使用者

#include

struct student

;void main()

6樓:

int a, b;

int *p1=&a,*p2=&b,*temp;

temp=p1; p1=p2;p2=temp;

這樣就完成交換

7樓:

4 int main(void)

5 add;

11 12 int *p;

13 int *q;

14 15 add.data = 1;

16 add.id =2;

17 p = &add.data;

18 q = &add.id;

19 printf("before turn p = %d q = %d\n",*p,*q);

20 p = &add.id;

21 q = &add.data;

22 printf("after turn p = %d q = %d\n",*p,*q);

23 24 return 0;

25 }

求大神解答錯誤 c語言中如何不用指標交換兩個變數的值 為什麼a,b的值不能回到主函式

8樓:匿名使用者

程式本bai

身就有問題,按du照你寫的程式zhi的意思,應該是要交dao換兩個程式回的值,而按照c語言的實答現方式必須要用到指標不可,程式可以按照以下的方式實現,兩個陣列的長度必須相同,否則會出現陣列下標越界的錯誤

void swap(int a,int b,int n)//此處的陣列已經被弱化成了指標

return;

}int main()

;int b[5] = ;

swap(a,b,5);

printf("%d,%d

",a[0],b[0]);//列印出陣列a和陣列b沒有意義return 0;}

9樓:匿名使用者

實參是指標型別,而形參為整型,型別不一致,出錯!修改swap函式如下:

void swap(int *a,int *b)

如何c語言中實現兩個任意大小的整數的相加

include include int main int b 201 int sum 202 int j 0 for i len1 1 i 0 i j 0 for i len2 1 i 0 i int max len1 len2 len1 len2 for i 0 i 10 i 10 i max 1...

c語言中保留兩位小數如何寫,c語言中怎麼保留小數2位

姬覓晴 2 接著我們儲存main.c檔案。3 這個時候我們把內容輸出,設定浮點型。也就是 f。4 但是輸出的時候預設有多位小數。5 於是我們可以設定 2f,也就是兩位數,因為我們寫了2。6 這個時候執行 的時候就會看到只有兩位小數了。 幸運的小李菲刀 輸出時?2f 即可指定輸出兩位小數 例題 356...

C語言如何使while迴圈兩次,C語言中如何實現while迴圈,執行設定的一段時間,比如5秒

潭清安董丁 anf c a 來接收使用者輸入的乙個字元時,會將回車符也接收下來。c語言在處理時,會將使用者輸入放在鍵盤緩衝區,使用scanf來接收 c時,編譯器從鍵盤緩衝區讀取乙個char字元,但是並不清空後面的字元,所以導致下一次scanf c a 時,將剩下的回車符先給讀進來,並進行處理了。要解...