c语言 for(:)循环 ++i与i++的区别

我看书上说,i++是先使用i,后i=i+1,而++i则相反,那么在for循环中,为什么不是这样,比如
#include
int main()
{
int i, j,n;
printf("please input:\n");
scanf_s("%d", &n);
for (i = 1;i < n;i++)
{
for (j = 1;j < i;j++)
printf("%4d", j);
printf("\n");
}
getchar() ;
getchar();
return 0;
}
把for (i = 1;i < n;i++)替换为for (i = 1;i < n;++i)运行起来并没有结果上的区别
是否在循环语句中,并不是这样的,还是说我的理解有问题,求解答
而且为什么是先带入i数值,在循环之后才i+1,而不是i+1之后再带入循环,这是不需要理由的吗

for循环第三个表达式++i或者i++效果是一样的,因为整个表达式只由++i或者i++构成,最终效果都是i自增1。如果表达式写成j=i++或者j=++i效果就不一样了,前者等价于j=i,i=i+1,后者等价于i=i+1,j=i。追问

那为什么是先用i带入循环,后i+1,而不是把i+1直接带入循环,这个需要理由吗

追答

for循环的执行顺序是:对于for(expr1;expr2;expr3){expr4;},①初始化for循环时执行expr1;②判断expr2是否成立,若成立则执行循环,否则跳出循环;③若expr2成立,执行循环体中的expr4;④当循环体内容执行完后,执行expr3;⑤回到②开始下一轮循环。

温馨提示:答案为网友推荐,仅供参考