函数参数,一般情况下有两种应用:
其一,通过参数传给被调用函数一个数值,通过被调用函数的计算,返回一个数值。
其二,通过参数传给被调用函数一个数值,通过被调用函数的计算,然后再对该参数进行重新赋值,以便后期使用。
第二种情况一般发生在被调用函数需要返回多个数值,或者是程序员根据编程需要而为。
示例:
两个整数变量进行相互对换。
采用传值(数值)方式:
void swap1(int a,int b)
{
int tmp ;
tmp=a;
a=b;
b=tmp;
}
采用传址(地址)方式:
swap2(int *a,int *b)
{
int tmp ;
tmp=*a;
*a=*b;
*b=tmp;
}
main()
{
int a=10;
int b=23;
swap1(a,b);
printf("1--a=%d b=%d\n",a,b);
swap2(&a,&b);
printf("2--a=%d b=%d\n",a,b);
}
结果:
1--a=10 b=23
2--a=23 b=10
对于swap1,由于传递的是数值,在swap1被调用时,系统给出2个整数空间,分别存放a,b的数值,通过函数swap1的运行,系统给出2个整数空间的a,b数值确实发生了变化,但主函数main中a,b对应空间的数值没有发生变化,从而结果不变。
对于swap2,由于传递的是变量a,b对应的地址,在swap1被调用时,系统给出2个整数空间,分别存放变量a,b的地址,通过函数swap2的运行,系统根据2个整数空间的a,b地址,对改地址对应的数值进行赋值,从而造成主函数main中a,b对应空间的数值发生变化,进而结果改变。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有