++i與i++問題
#include <stdio.h>
int main()
{
??? int i,sum=0;
??? i=1;
??? while( i<=100 )??
??? {
??????? sum=sum+i;
???????? i=i++;
??? }
??? printf("100以內(nèi)所有整數(shù)之和為:%d\n", sum);
??? return 0;
}
為什么使用i=i++不能得出5050,而i=++i可以得出5050//i++與++i都等同于加一
2018-07-18
題主你沒必要使用i=i++,直接用i++即可,因此你的問題就出在這里,當(dāng)使用i=i++時(shí),i的值等于i+1之前的值也就是它本身,當(dāng)使用i=++i時(shí),i的值等于i+1,由此,為了避免出現(xiàn)這種錯(cuò)誤,推薦題主直接使用i++或者++i,在這種情況下兩者是等價(jià)的。(不過神奇的是我在VS2017里用題主的方法都能得出5050,估計(jì)是編譯器的問題,但是最好直接用i++或者++i)
2018-07-17
同上,所以i++循環(huán)算的其實(shí)是1加到101的和
2018-07-17
i++是先運(yùn)算再加1,++i是先加1再運(yùn)算