C语言中for(n=1;n<100;++n)和for(n=1;n<100;n++)的区别

来源:百度知道 编辑:UC知道 时间:2024/05/22 11:50:07
RT

楼主你这样写就,没有区别。都是在循环完了才做++n n++。最终n的值都加了1

你要是for(n=1;++n<100;)
for(n=1;n++<100;)
就有区别啦
++n是取n加完1后的值
n++是取n当前值,运算后才加1

所以最后++n=99<100.n=99
而第二个n++=99<100.n=100.
这个在灵活运用之前要想一下,不用丢一

无论前置还是后值,++ 都会使其操作数的值增 1。不同的是,++ 前置时,自增表达式(如 ++n)的值等于其操作数自增后的值;++ 后置时,自增表达式(如 n++)的值等于其操作数自增前的值。例如:

int n = 5, post = 1, pre = 1;
pre = ++n + pre; // 运算结束后 pre 为 7,n 为 6
n = 5;
post = n++ + post; // 运算结束后 post 为 6,n 为 6

上例中,++n 的值等于 n 自增后的值,即 6,所以 pre 最后得到的值为 7。n++ 的值等于 n 自增前的值,即 5,所以 post 最后得到的值为 6。

其实从循环的角度说都循环了99次
100此时结束 你编译一下就知道了
主要是for循环 第一次是进行n的赋值 比较 循环到for句尾 n才++ n怎么加都不会影响for循环
void main()
{
int n;
for(n=1;n<100;++n)
{
printf("%d",n);
}
printf("\n%d\n",n);
for(n=1;n<100;n++)
{
printf("%d",n);
}
printf("\n%d\n"