用swap函數實現數的交換



  

#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請按任意鍵繼續. . .

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM