下列程序的执行结果是什么?
#include “stdio.h”
void change(int a,int b)
{ int t;
t=a;a=b;b=t;
}
void main( )
{ int x,y;
printf(“input x,y: “);
scanf(“%d,%d”,&x,&y);
change(x,y);
printf(“x=%d,y=%d\n”,x,y);
}
思考:为什么x与y的值没有互换?
程序的执行结果是
input x,y: 3,4
x=3,y=4
x与y的值没有互换的原因:函数调用时实参与形参的结合是传值调用。形式参数是局部变量,函数被调用的时才被分配内存。当函数执行完毕, 返回时, 形式参数占用的内存空间即被释放。实参和形参对应的是两个独立内存单元,它们之间只有单向的值的传递,即将实参的值传递给形式参数。形参的值在函数中无论怎么改变,都不会影响到实参。
© 版权声明
部分文章来自网络,只做学习和交流使用,著作权归原作者所有,遵循 CC 4.0 BY-SA 版权协议。
THE END
暂无评论内容