运行下列C程序:

来源:百度知道 编辑:UC知道 时间:2024/05/26 06:56:45
void fun(int x,int y, int z){
z=x*x+y*y;
}
void main(){
int a=31;
fun(5,2,a);
printf(“%d”,a);
}
输出结果是( )。(选择一项)
a} 0
b) 29
c) 31
d) 无定值
那fun()就没有作用了吗?

C,函数实参值没有改变,没有返回值

c
func函数只是修改了z的值,但是没有传回给a,所以a还是原来的值,这就是值传递,程序运行打func时候,程序申请一个栈给func函数用,a的值传过去,z值发生了改变,在返回时候,a的值没变,就是这样的。

C
你看下输出结果就知道是不是没作用了.