#include
int x = 0;
int function(int num);
int main()
{
int num = 0;
int y = function(num);
printf("%d\n",num);
return 0;
}
int function(int num)
{
//printf("%d ",num);
//printf("%d ",x);
while(x<100)
{
x++;
num+=x;
function(num);
//printf("%d ",num);
//printf("%d ",x);
}
return num;
}
为什么最后会输出num的值为0
#include <stdio.h>
int x = 0;
int function(int num);
int main()
{
int num = 0;
int y = function(num);
printf("%d\n",y);
return 0;
}
int function(int num)
{
//printf("%d ",num);
//printf("%d ",x);
if(x<100)
{
x++;
num+=x;
return function(num);
//printf("%d ",num);
//printf("%d ",x);
}
return num;
}
你写的int function(int num)
函数传入的是形参,是不能改变num的值的,会产生一个临时变量对num的数值进行复制
最后num的值其实没有改变。
要是一定要改的话,可以用指针或者引用。
望采纳!