指针变量作为函数参数的一点用法_倣棄工作室的空间_百度空间
C语言中,函数的参数可以是整型,实型,字符型,指针类型;如果用指针做为函数参数传到被调用函数的话,可以实现使变量的值发生变化,在主调函数(例如:main函数中)使用这些已经改变了的值的目的。先看段代码吧

  代码

  #include

  swap(int *a,int *b)

  {

  *a=*a+*b;

  *b=*a-*b;

  *a=*a-*b;

  }

  main()

  {

  int a,b;

  int *p1,*p2;

  printf("请输入两个数据用于交换:");

  scanf("%d,%d",&a,&b);

  p1=&a;

  p2=&b;

  swap(p1,p2);

  printf("\n不用第三方变量的交换结果是:%d,%d\n",a,b);

  }

  这是一段经典的C语言中不使用临时变量实现两个变量交换的代码。在main函数中定义了两个整型变量,两个指针变量,并使p1=&a,p2=&b;然后调用swap函数,看结果吧

  

  已经实现了两个数的交换 。

  然后把swap函数改一下,改成如下:

  swap(int *a,int *b)

  {

  int *temp;

  *temp=*a;

  *a=*b;

  *b=*temp;

  }

  改成这样子之后就报错了。。

  

  究其原因是因为指针变量temp无确定地址,它的值是不可预见的。。

  当把函数改为这样子的时候也是不行的。

  swap(int a,int b)

  {

  int temp;

  temp=a;

  a=b;

  b=temp;

  }

  调用这个版本的函数,形参a,b的值是改变了,但主调函数却使用不了改变后的值。。

  下面的写法就可以在主调函数中使用改变后的值了。

  swap(int *a,int *b)

  {

  int temp;

  temp=*a;

  *a=*b;

  *b=temp;

  }

  C语言的指针用法太灵活了,代码在书写过程中也没有注意编码规范。



郑重声明:资讯 【指针变量作为函数参数的一点用法_倣棄工作室的空间_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——