|
17鱼币
本帖最后由 jkLoliTA 于 2022-10-15 16:38 编辑
想请教一下括号内语句的执行顺序
理论上运算符优先级 ++ > !=并且两者的结合性都为 ->左到右
为何运算结果却是先执行判断
(不好意思哈各位大佬,新人只有这么点鱼币,给不了更多了)

(题目原型是S1E22动动手第0题的while(*target++ != '\0')
我的问题是:
while(i++ != 0)
为什么先判断 i != 0 是否为真,
再i = i +1
i++是要语句执行完之后才会自增
例如:
- #include <stdio.h>
- int main()
- {
- int i=0;
- printf("%d",i++);
-
- return 0;
- }
复制代码
运行结果:
++i才会语句执行玩之前就完成自增
- #include <stdio.h>
- int main()
- {
- int i=0;
- printf("%d",++i);
-
- return 0;
- }
复制代码
运行结果:
所以把代码改成++i就是你想要的结果啦
- #include <stdio.h>
- int main()
- {
- int i=0;
- while(++i != 0){
- //语句
- printf("你好");
- }
-
- return 0;
- }
复制代码
|
最佳答案
查看完整内容
i++是要语句执行完之后才会自增
例如:
运行结果:
++i才会语句执行玩之前就完成自增
运行结果:
所以把代码改成++i就是你想要的结果啦
|