下列程序的执行结果是什么

下列程序的执行结果是什么?

#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的值没有互换的原因:函数调用时实参与形参的结合是传值调用。形式参数是局部变量,函数被调用的时才被分配内存。当函数执行完毕, 返回时, 形式参数占用的内存空间即被释放。实参和形参对应的是两个独立内存单元,它们之间只有单向的值的传递,即将实参的值传递给形式参数。形参的值在函数中无论怎么改变,都不会影响到实参。

 

 

© 版权声明
THE END
喜欢就支持以下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容