我在做这道题,我有一个疑问。
#include <stdio.h>
int main(void)
{
int fun (int);
int i=3;
fun(i=fun(fun(i)));
printf("%d\n",i);
return 0;
}
int fun ( int i )
{
i++;
return(i);
}
我怀疑什么时候可以
fun ( i = 5 )
这会发生什么? i 的值是 6 还是 5。 根据我的说法,应该是 6。但这不是正确答案。
最佳答案
在C语言中,参数是按值传递的。main函数中的变量i
其实和里面的
,因为它的值在传递给函数时被复制了。i
是不一样的fun()
当您调用 i = fun(fun(i))
时,5 被赋值给 main 函数中的 i
。但是,返回 6 的 fun(5)
调用不会将其结果分配回 i
,保持不变。打印输出时,i
仍然是 5。
关于c - 这将是什么输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24726824/