i++
是先读取i的值在进行加1
++1
是先进行加1,再读取i的值
放到for里面没效果,因为不管i++还是++i,都不会取当时i的值,而是在这一步过了才取到它的值。
下面举个简单例子:
main()
{
int i=1;
int j=1;
while(i++ <4)
printf("i++ say hello!\n");
while(++j < 4)
printf("++j say hello!\n");
}
你运行下就知道结果了
while循环就是满足条件时一直运行,直到不满足才跳出
你给的这个式子的答案是b=2 ,c=3.
main()
{
int c=2;
int b=5;
b=c++;
printf("c=%d, b=%d \n",c,b);
}
用这个程序验证
先把c的2赋给了b,然后c自增。
如果是++c,那么就是先c自增,然后赋给b
i++ 在 整个运算没结束 值依然是i
++i 在 整个运算没结束 值是i+1
for 函数没变的原因是,,
因为for 是运行后在 ++的
for(i = 1;i <= count ;i++)
sum += i;
是 i = 1 ;i <= count ; sum += i; i++ (这个范围内值才有区别);这样的循环
for(i = 1;i <= count ;++i)
sum += i;
是 i = 1 ;i <= count ; sum += i; ++i ;这样的循环
在这个循环里面用到i++和++i是没什么区别的,它只起到加的作用,而他们的结果都会加1的
但是你输出或者在其它赋值的时候就不同了
b=c++;//先赋值给b,c再加1
a=++c;//c先加1,再赋值给a
i++
先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i的值。
如i=1,则表达式(i++)的值等于1,而i的值变为2。
++i
i先自增1,再把自增后的值赋给表达式(++i)。
如i=1,则表达式(++i)的值等于2,i的值也为2,
i--和i++同理
--i和++i同理