C语言编程题,求解释 int i=0 main() {int i=5; reset(i/2); printf("i=%d\n",i);
答案:1 悬赏:40 手机版
解决时间 2021-04-05 10:19
- 提问者网友:我的未来我做主
- 2021-04-04 11:01
C语言编程题,求解释 int i=0 main() {int i=5; reset(i/2); printf("i=%d\n",i);
最佳答案
- 五星知识达人网友:酒醒三更
- 2021-04-04 11:55
这个程序 reset(i)虽然 函数里i的数值变化 但这是数值传参 所以主函数里的i值不变第一个reset(i/2)之后 i还是5 第2个reset(i=i/2); 在main函数里 i=i/2了 所以i变成2了 所以输出2 第三个reset(i/2); 同理i值没变化 所以i=2;追问第二个reset里i=2了,那为什么i没有变成0呢,“i=i<=2?5:0”这句不是对i进行判断然后赋值吗?
然后第三个reset里的i为什么和第一个里面的i不一样呢,
麻烦你了!追答这个程序 reset(i)虽然 函数里i的数值变化 但这是数值传参 所以主函数里的i值不变第一个reset(i/2)之后 i还是5 第2个reset(i=i/2); 在main函数里 i=i/2了 所以i变成2了 所以输出2 第三个reset(i/2); 此时i在main里变成2(在第二步)同理i值没变化 所以i=2;“i=i<=2?5:0”这句是对i进行判断然后赋值,但是前面说了这是数值传参,程序 reset(i) 函数里i的数值变化 不会导致main函数里面的i发生变化。。
然后第三个reset里的i为什么和第一个里面的i不一样呢,
麻烦你了!追答这个程序 reset(i)虽然 函数里i的数值变化 但这是数值传参 所以主函数里的i值不变第一个reset(i/2)之后 i还是5 第2个reset(i=i/2); 在main函数里 i=i/2了 所以i变成2了 所以输出2 第三个reset(i/2); 此时i在main里变成2(在第二步)同理i值没变化 所以i=2;“i=i<=2?5:0”这句是对i进行判断然后赋值,但是前面说了这是数值传参,程序 reset(i) 函数里i的数值变化 不会导致main函数里面的i发生变化。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯