理解運算子的操作

2021-08-13 09:07:43 字數 834 閱讀 1957

在數學中,運算是一種數**算,它包含零或多個輸入值(稱為運算元),以產生輸出值。常用操作(如加法)使用表示操作的特殊符號(如+)。這些符號稱為運算子。程式設計人員的工作方式相同,但名稱可能並不總是符號。運營商的工作類似於函式,輸入引數並返回乙個值,但它們更簡明。例如,4 + 2 * 3是讀比新增更容易(4,多(2, 3))!

為了正確地評估表示式,如4 + 2 * 3,我們必須理解運算子的操作,以及正確地應用它們的順序。運算子在復合表示式中計算的順序稱為運算子優先順序。使用正常的數學優先規則(在乘法之前,先解決乘法),我們知道上面的表示式應該求值為4 +(2×3),生成值10。

在c++中,當編譯器遇到乙個表示式,它必須分析和確定的表達應該如何進行評估。為了幫助這一點,所有操作符都被賦予了優先順序。那些優先順序最高的人首先被評估。您可以在下面的表中看到乘法和除法(優先順序5)比加法和減法具有更高的優先順序(優先順序6)。編譯器使用這些級別決定如何評估它遇到的表示式。

234

5678

9101112

1314

// note: exp must be non-negative

int pow(int base, int exp)

return result;

}

如果您還不了解這個函式的所有部分,請不要擔心。只要小心溢位整數結果,如果兩個引數都很大,可能會很快發生。

測驗1)從日常數學中知道,括號內的表示式首先得到求值。例如,在表示式(2 + 3)* 4中,首先對(2 + 3)部分求值。

對於這個練習,你將得到一組沒有括號的表示式。使用運算子的優先順序和結合性上面表中的規則,新增括號每個表達清楚編譯器如何將計算表示式。

深入理解 運算子的過載

今天看到這麼一道題 templateclass bignumber bignumber operator bignumber b 已知b1,b2是bignumber的兩個物件,則下列表示式中錯誤的是?a 3 3 b b1 3 c b1 b2 d3 b1題幹中的意思不就是類裡面過載了乙個 法運算子麼,...

乙個程式,讓你理解運算子過載操作

1 實現運算子過載 2 include3 include4 using namespace std 5namespace gong69 namespace var10 13class matrix14 17 matrix 18int array gong maxn gong maxn 19 matr...

shell運算子操作 算術運算子

a 10 b 20 echo a b expr echo a b expr echo a b expr echo a b expr echo a b expr if a b then echo a等於b else echo a不等於b fiif a b then echo a不等於b else ec...