C語言中的++a和a++的區別
阿新 • • 發佈:2019-02-09
自增自減
1、++自增運算子:如a++,++a都等價於a = a + 1;
1、++自增運算子:如a++,++a都等價於a = a + 1;
2、--自減運算子:如a--,--a都等價於 a = a -1;
雖然++a和a++等價的結果一樣,但是運算過程確大不相同,以下舉例說明:
#include <stdio.h> int main() { //int m = 10, n1, n2; //n1 = m++;先將m的值賦給n1,然後m再做自增運算,所以此時,n1=10,m=11; //n2 = ++m ;先將m做自增運算,然後在將運算後的m值賦給n2,所以此時,n2=11,m=11; int a = 10,b =10, c, d; c = (a++) + (++a); //由上例n1=m++,n2=++m,m++=11可得出c=10+12;分析:前面括號所得值為10,而前面括號中的a經過自增運算後a的值為11,然後賦值給後面括號中的a,後面括號中的a經過自增運算後a的值為12,後面括號最後賦值為12; d = (++b) + (b++); //由上例n1=m++,n2=++m,++m=11可得出d=11+11;分析:前面括號所得值為11,而前面括號中的a經過自增運算後b的值為11,然後賦值給後面括號中的b,後面括號中的b先將值賦給後面括號,所以後面括號的值為11; printf("c=%d\nd=%d\n",c,d); return 0; }