第一个调用把i/2的值传递给fun2的形参,而形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量,所以调用结束后i的值并未改变。虽然fun2的返回值是处理后的i,但是由于并未将函数调用的结果赋给某一变量,所以此次函数调用对主函数内的变量无影响。第二个调用是把i=i/2的值传递给fun2的形参,即有把i/2的值赋给i这一运算,所以此时主函数中的i值为2.第三次调用过程与第一次相同,故i不变。第四次调用fun1,在函数运算的过程中,执行了输出语句故输出运算后的结果:4.函数调用结束后,内存释放,依然对主函数中的i值无影响。
第一个fun2没有对i改变,输出5
第二个fun2i变为2,所以输出2
第三个没有对i改变,输出2
fun1将i/2做参数传入,没有对i值改变所以输出4 和2
两个函数传递进去的都是形参,并没有改变main的i,
main里面打印的输出都是5,
func1的(i%i)已经是0了,所以func1打印的是4
楼主你想问关于这个程序的什么地方?