c语言指针指向的内容怎么改变(C语言-用指针改变实参)
一般来说实参不可被改变,
但是利用指针可以改变实参。
~
①源程序
#include<studio.h>
/*定义函数*/
void sub(double x,double *y,double *z)
{*y=*y-1.0;*z=*z x;}
/*主函数*/
main()
{
double a=2.5,b=9.0,*pa,*pd;
pa=&a;pb=&b;
sub(b-a,pa,pa);
/*此处不是指pa值,pa为指针,指向a的地址*/
printf("%f\n",a);
/*浮点型保留6位小数*/
}
结果a=8.000000
~
②实参赋值形参
形参x=实参(b-a)=9.0-2.5=6.5
形参*(y=实参pa)=*y=*pa=*&a=a=2.5
形参*(z=实参pa)=*z=*pa=*&a=a=2.5
~
③用形参公式计算
形参*y=*y-1.0=2.5-1=1.5=a
注意区分变量加减和指针移动,
*y-1表示指针所指变量减1,
*(y-1)表示指针移动1。
形参*z=*z x=2.5 6.5=8.0=a
即利用指针类形参*y和*z,改变了实参a的值。
~
就这么简单,
你学会了吗?
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com