運算式優先級
- 優先級不是先計算,而是優先結合為整體
- 從左到右計算
- 在一個運算式中,如果存在括號,則優先計算括號中的運算式
舉例1: c = a + b+ ++b
1
2
int a=1, b=2;
int c = a + b+ ++b; //output: 6
輸出為6
1
2
3
a+b=3
++b=3(b己經變成3)
3+3=6
舉例2: c = ++b + a + b
1
2
int a=1, b=2;
int c = ++b + a + b; //output: 7
輸出為7
為什麼呢?
1
2
++b=3(b己經變成3)
3+1+3=7
前++ 後++ ?
- ++a
- 先把a加上1,再把a放入運算式中。
- a++
- 先把a放到運算式中,再把a加上1。
關係/邏輯運算符優先級
1
! > 算術運算符 > 關係運算符 > && > || > 賦值運算符
!取反運算符
舉例:
1
2
3
int a=10, b=5;
bool c = false;
bool res = a >= 2 * b && !c; //output: true
輸出為true
為什麼呢?
1
2
3
4
!c = true (!取反運算符優先)
2 x 5 =10 (算術運算符 2xb)
10 >= 10 => true (關係運算符 a>=10)
true && true => true (true && !c)