首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C语言-用指针改变实参

一般来说实参不可被改变,

但是利用指针可以改变实参。

源程序

#include

/*定义函数*/

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 ",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的值。

就这么简单,

你学会了吗?

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220220A09QAZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券