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 時,將剩下的回車符先給讀進來,並進行處理了。要解...