#include<stdio.h> #include<stdlib.h> int main() { void swap(int*p,int*q);//對子函數進行說明 int a=10,b=11;//定義變量a和b int *p,*q;//定義兩個int*型的指針變量 p=&a;//使p指向a,一開始忘了and符號 程序無法運行,以后注意 q=&b;//同上 if(a<b) swap(p,q);//調用swap語句 printf("%d,%d",a,b);//一開始輸出的是p,q程序結果不對,才知道是輸出a和b return 0; } void swap(int*p,int*q)//定義swap函數 { int t; t=*p;//p與q互換 *p=*q; *q=t; }
總結:在寫代碼的時候經常忘記and符號來表示地址。在輸出程序結果時有時會分不清是輸出p還是a。就像這個程序輸出p和a是不一樣的。在子函數中a將值給了p,之后p又將值有返還給了主函數,但為何輸出p和a的值是不一樣的?謝謝老師。
11,10請按任意鍵繼續. . .
