歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

C語言:三種函數方法的調用,引用調用與指針

三種函數方法的調用,

主要看change3這個函數, 此方法調用後, 會對主函數造成影響!

  1. #include <stdio.h>   
  2.   
  3. void change1(int a, int b)  
  4. {  
  5.     if(a<b)  
  6.     {  
  7.         int temp;  
  8.         temp = a;  
  9.         a = b;  
  10.         b = temp;  
  11.     }  
  12.     printf("change1: a = %d, b = %d \n",a,b);  
  13. }  
  14.   
  15. void change2(int *p1, int *p2)  
  16. {  
  17.     if(*p1<*p2)  
  18.     {  
  19.         int *temp;  
  20.         temp = p1;  
  21.         p1 = p2;  
  22.         p2 = temp;  
  23.     }  
  24.     printf("change2: a = %d, b = %d \n",*p1,*p2);  
  25. }  
  26.   
  27. void change3(int *p1, int *p2)  
  28. {  
  29.     if(*p1<*p2)  
  30.     {  
  31.         int temp;  
  32.         temp = *p1;  
  33.         *p1 = *p2;  
  34.         *p2 = temp;  
  35.     }  
  36.     printf("change3: a = %d, b = %d \n",*p1, *p2);  
  37. }  
  38.   
  39. int main()  
  40. {  
  41.     int a, b;  
  42.     int *p1,*p2;  
  43.     printf("Input two number:\nfirst:");  
  44.     scanf("%d",&a);  
  45.     printf("second:");  
  46.     scanf("%d",&b);  
  47.     p1 = &a;  
  48.     p2 = &b;  
  49.   
  50.     change1(a,b);    /*方法change1中調換兩個數的位置,不會對主函數有影響*/  
  51.     printf("main: a = %d, b = %d \n",a,b);  
  52.   
  53.     change2(p1,p2);  /*方法change2中調換兩個婁的位置,不會對主函數有影響*/  
  54.     printf("main: a = %d, b = %d \n",a,b);  
  55.   
  56.     change3(p1,p2);  /*方法change3中調換兩個數的位置,會對函數主有影響*/  
  57.     printf("main: a = %d, b = %d \n",a,b);  
  58. }  
Copyright © Linux教程網 All Rights Reserved