為什么運行結果是100 102 101 101 101 100
#include <stdio.h>
int main()
{
int a=100;
printf("%d\n",a++);
printf("%d\n",++a);
printf("%d\n",--a);
printf("%d\n",a--);
printf("%d\n",a+1);
printf("%d\n",a);
}
#include <stdio.h>
int main()
{
int a=100;
printf("%d\n",a++);
printf("%d\n",++a);
printf("%d\n",--a);
printf("%d\n",a--);
printf("%d\n",a+1);
printf("%d\n",a);
}
2016-06-27
舉報
2016-06-27
int a=8;
a++:先使用變量a(a=8),再做自增運算+1(a=9);
++a:先做自增運算+1(a=9),再使用變量a(a=9);
eg:
int a=7;
int b=a++ + ++a;//b=7+9
printf("%d %d\n",a,b);//9,16
int c=++a + a++;//c=10+10
printf("%d %d",a,c);//11,20
又是....你
2016-07-01
? ? printf("%d\n",a++); ? ?//先輸出100 再自增,a=101,但輸出值是100
? ? printf("%d\n",++a); ? ?//上一行的a=101,先自增1變成102,然后輸出就是102
? ? printf("%d\n",--a); ? ?//上一行的a=102,先自減1變成101,然后輸出為101
? ? printf("%d\n",a--); ? ?//上一行的a=101,先輸出101,自減1以后a=100
? ? printf("%d\n",a+1); ? ?//上一行a=100,進行運算a+1=100+1=101=輸出值
2016-06-27
#include <stdio.h>
int main()
{
int a=100; ? ? ? ? ? ? ? ? ? ? ? ?//初始值是100
printf("%d\n",a++); ? ? ?//輸出是100,a的值變成了101(因a++是先輸出,后運算)
printf("%d\n",++a); ? ? ? ?//輸出是102,a的值變成了102(因++a是先運算,后輸出)
printf("%d\n",--a); ? ? ? ?//輸出是101,a的值變成了101(原因同上)
printf("%d\n",a--); ? ? ? //輸出是101,a的值變成了100 (原因同a++)
printf("%d\n",a+1); ? ? //輸出的值是101,a的值沒有改變,a是100(因要求輸出的值是a+1=100+1=101,但是a并沒有自增)
printf("%d\n",a); ? ? ? ? //輸出的值是100,a的值也是100
}
2016-06-27
第四行 a=100
第五行 a先輸出再自加 輸出是100,a=101
第六行 a先自加再輸出 輸出是102,a=102
第七行 a先自減再輸出 輸出是101,a=101
第八行 a先輸出再自減 輸出是101,a=100
第九行 a加1再輸出 輸出是101,a=100
第十行 a直接輸出 輸出是100,a=100