C语言中的参数传递


void Exchg1(int x, inty) 

{

int tmp;

tmp=x;

x=y;

y=tmp;

printf(“x=%d,y=% d\n”,x,y)

}

问:你认为这个函数是在做什么呀?

答:好像是对参数 x,y的值对调吧?

请往下看,我想利用这个函数来完成对a,b两个变量值的对调,程序如下:

 

void main()

{

int a=4,b=6;

Exchg1 (a,b) 

printf(“a=%d,b=%d\n”,a,b)

}

 

我问:Exchg1 ()里头的  printf(“x=%d,y=%d\n”,x,y)语句会输出什么啊?

我再问:Exchg1 ()后的  printf(“a=%d,b=%d\n”,a,b)语句输出的是什么?

 

程序输出的结果是:

x=6 , y=4

a=4 , b=6  //为什么不是a=6,b=4呢?如果你也会有这个疑问,那是因为你跟本就不知实参a,b与形参x,y的关系了。

 

Exchg1(a,b)时,所完成的操作代码如下所示。

int x=a;//←

int y=b;//←注意这里,头两行是调用函数时的隐含操作

上面是调用函数时的两个隐含动作。它确实存在, 现在我只不过把它显式地写了出来而已。问题一下就清晰起来啦。后面就不用我说了吧。 仅仅是值的传递。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值