1. 程式人生 > >C語言中的++a和a++的區別

C語言中的++a和a++的區別

自增自減
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;
}