|
1鱼币
#include<stdio.h>
int reset(int i);
int workover(int i);
int i=0;
int main()
{
int i=5;
reset(i/2);
printf("i=%d\n",i);
reset(i=i/2);
printf("i=%d\n",i);
reset(i/2);
printf("i=%d\n",i);
workover(i);
printf("i=%d\n",i);
return 0;
}
int workover(int i)
{
i=(i%i)*((i*i)/(2*i)+4);
printf("i=%d\n",i);
return i;
}
int reset(int i)
{
return i<=2? 5:0;
}
请问为什么输出的是5,2,2,0,2?
|
最佳答案
查看完整内容
这个很简单的!
int i=5;
reset(i/2);第一处
printf("i=%d\n",i);
reset(i/2);有返回值但是你没有赋给任何变量,所以i还是等于5;这里有点知识,好像调用i时只是调用的是他的一个副本,并不是他本身,这个你可以找资料看一下
reset(i=i/2);
printf("i=%d\n",i);这里i=i/2的值是2,这里你等于对i进行了再次的赋值 printf("i=%d\n",i);
reset(i/2);
printf("i=%d\n",i);上边你对i ...
|