1. 程式人生 > 實用技巧 >C語言成長之路24:加加和減減

C語言成長之路24:加加和減減

1、前++和後++

  如果單獨使用,不管是前++還是後++,最重的結果都是給這個變數+1;

  (1)前++:先給變數自身+1,再帶著這個+1之後的值去參與運算;

  (2)後++:先用原先的值去參與運算,運算過程結束後,再給變數自身+1;

注:!、~、++、--、-、(型別)、*、&、sizeof,這一級都是單目運算子號,這一級的結合方向是從右向左

意思就是,當出現*P++時候,先運算P++,再運算*這一步驟

 1 void main(){
 2     /*  C語言成長之路24:加加與減減
 3      *
 4      */
 5     int a = 3;
 6     int
b = a++; 7 printf("b = %d",b); // 本次運算結束後,b就變成了4 8 9 int c = 3; 10 int d = ++c; // 先在給自身+1後,再賦值給d,所以d就等於4 11 printf("\nd = %d",d); 12 13 int e = 3; 14 printf("\ne = %d",++e); // 結果4,原因是再呼叫之前先增加了 15 16 int f = 3; 17 printf("\nf = %d",f++); // 結果3,原因是先運算完畢之後再++ 18 19
int g = 3; 20 int h = 5; 21 int i = (++g) * h; 22 printf("\ni = %d",i); // 結果20,g先給自身+1之後=4,4*5 = 20 23 24 int j = 3; 25 int k = 5; 26 int l = (j++) * k; 27 printf("\nl = %d",l); // 結果15,先直接是3*5後,運算出15之後,j才變成了4 28 29 //protect 定義一個變數x=10;y = x++ + ++x * 3 + --x + x--
30 int x = 10; 31 int y = (x++) + (++x) *3 + (--x) + (x--); 32 printf("\nx + y = %d",y); 33 /* 由於++ -- 這一類運算優先順序高於加減乘除,所以先統一運算加加和減減的 34 * 1--> x++ 此時x為10,但運算過後為11 35 * 2--> ++x 此時x為12(11+1) 36 * 3--> --x 此時x為11 (12-1) 37 * 4--> x-- 此時x為11,運算過後為10 38 * 5--> 10 + 12 * 3 + 11 + 11 = 68 39 */ 40 };