关于for循环的疑惑count++以及++count的应用

img

img
第一张图片的四个选项怎么区分?它们各自的含义是什么?i++以及++i在使用时有什么要注意的?或者说什么时候要用i++,什么情况需要用++i?
第二张图片中代码的具体运行过程是怎么样的?为什么一开始会出现10?是因为和while一样,先判断了i>1这个条件就执行了printf,然后再进行i/=2的动作吗?
问题比较多,🙏🙏🙏

for(初始化语句;判断语句;控制语句){
  循环语句
}

等价于

初始化语句
while(判断语句){
  循环语句
  控制语句
}

所以1中AB等价,都是循环内的控制语句,而C则是在判断语句中自增
就需要考虑i++>5是先判断,再自增;而++i>5是先自增,再判断
而问题2的代码可以等价于一下代码

int i = 10;
while(i>1) {
    printf("%d",i++);
    i/=2;
}

第一张图abd没什么区别,都是在判断条件达成后才自增,但c不一样c是i++<10,是在判断时自增,也就是说不管条件满足与否,都自增,因此abd退出循环时i的值为10,而c退出循环时i的值为11

1.i++先做别的事,再自己加1,++i先自己加1,再做别的事情。
2.先执行 int i=10 ,在判断的i >1 成立就 执行 printf("%d",i++) ,最后再执行 i/=2.第二次不执行int i=10,其他顺序照旧