首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于函数参数的应用

关于函数参数的应用

原创
作者头像
鲁郭大侠
修改2020-03-09 11:17:48
7440
修改2020-03-09 11:17:48
举报
文章被收录于专栏:高级程序设计高级程序设计

函数参数,一般情况下有两种应用:

其一,通过参数传给被调用函数一个数值,通过被调用函数的计算,返回一个数值。

其二,通过参数传给被调用函数一个数值,通过被调用函数的计算,然后再对该参数进行重新赋值,以便后期使用。

第二种情况一般发生在被调用函数需要返回多个数值,或者是程序员根据编程需要而为。

示例:

两个整数变量进行相互对换。

采用传值(数值)方式:

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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档