c语言基础问题求解。

img


有没有人帮我看一下我哪里写错了,主函数不是调用了fun函数吗,那x就相当于fun中的a,y就相当于fun中的b,c就相当于fun中的c,然后根据fun函数中的运算方法运算,我这样想哪里不对?初学者望大家指点,谢谢!

这个问题是这样的哦,这里只是将xyz的值传给了func函数中的abc.也就说func函数接收了xyz的值并创建了副本abc,函数里只对abc进行了操作,并没有改变xyz本身的值哦,想要改变xyz的值需要利用指针,给你画了一个图帮助理解!

img

函数是值参,函数内是修改不了外部传入的变量值的,所以main函数中的x,y,z值不会被函数fun所修改,最后还是10,20,30

函数传参都是值传递,相当于拷贝,xyz的值本身并没有发生变化。

输出:z = 30 ,y = 20, x = 10
因为函数 fun() 三个形参a b c 都是值传递,所以在fun()函数体内因为作用域的原因,对它们的值的修改,不会改变到主函数里的实参 x y z 的值。


可以看下c语言参考手册中的 c语言-exp()