歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C語言:三種函數方法的調用,引用調用與指針

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

日期:2017/3/1 10:17:10   编辑:Linux編程

三種函數方法的調用,

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

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