邏輯運算子
賦值運算子
遞增與遞減運算子
成員訪問運算子
條件運算子
位操作符
sizeof運算子
逗號運算子
算術運算子的運算物件和求值結果都是右值,
在表示式求值前,小整數型別的運算型別會被提公升成較大的整數型別,所有運算物件最終會轉成同一型別
一元 正/負 號運算子 返回 運算物件值(提公升後)副本
需要注意的是bool
除:c++11 規定一律向0取整,即直接切掉小數部分bool x = true;
bool y = -x; // y 是true! x被提公升為整數1後取負為-1,然後轉回布林值為true(只有0轉為false)
求餘:m%n 要求m,n均為整數且n不為0。當m%n != 0 則 結果與m同號
注意這兩個運算子存在求值順序
除非清楚比較物件是布林型別,否則博使用布林字面值true 和 false作為運算物件
賦值運算子左側必須為 可修改的左值 如:
賦值運算結果是它的左側運算物件,並且是乙個左值。int i = 0, j = 0, k = 0;
const
int ci = i;
//以下語句均非法
1024 = k; //1024為右值
i+j = k; //i+j返回右值
ci = k; //ci不可修改
結果的型別就為左側運算物件的型別 如
利用初始化列時禁止 收縮轉換int k =0;
k = 3.14;//結果是int, 值是3
賦值運算滿足右結合律int k = ; //error: 首先要丟去小數點,而且int也不足夠大容納整數部分。因而禁止
int a(3.14); //warning: 只是丟失資料
復合賦值運算子較之其等價形式少求一次值。int i;
double j;
j = i = 3.5; // i = 3 j = 3;
前置版本: 將運算物件增1後,將改變後的物件作為求值結果,即將物件本身作為左值返回。
後置版本: 將運算物件增1後,求值的結果是運算物件改變之前那個值的副本,
將物件原始值的副本作為右值返回。因而一般不會使用。
均需作用於左值運算物件。
注意解引用優先順序比 . 運算子要小,注意使用括號。
形式:cond ? expr1 : expr2;string s1 = "a string", *p = &s1;
auto size = (*p).size();
這是具有求值順序的運算子
一般形式與巢狀形式
條件運算子優先順序較小,使用時注意使用括號string finalgrade = (grade < 60) ? "fail" : "pass";
finalgrade = (grade > 90) ? "high pass" : (grade < 60) ? "fail" : "pass";
用作整數型別處理,就是當做二進位制數了操作其位數。這在 《深入理解計算機系統》chapter2有詳細講解。int grade = 59;
string s;
cout
<< endl;
cout
<< s << endl;
cout
<< ((grade < 60) ? "fail" : "pass"); //prints fail;
s = cout
<< (grade < 60) ? "fail" : "pass"; //print 1; and assign "fail" to s
cout
<< grade < 60 ? "fail" : "pass"; //error:compares cout to 60
sizeof 返回 一條表示式或者乙個型別名字所佔的位元組數 為size_t的常量表示式。
滿足右結合律。
含有兩個運算物件,從左到右依次求值(具有求值順序)
先對左側求值,然後結果丟棄,再對右側求值,返回右側的結果
int x = 1;
int y = 2;
int z = 0;
z = (x++, ++y);
cout
<< z << endl;//z = 3;
算術運算子
核心 運算子 就是對常量和變數進行操作的符號。分類 算術運算子,賦值運算子,比較運算子,邏輯運算子,位運算子,三目運算子 算術運算子 注意事項 a 整數相除只能得到整數。如果想得到小數,必須把資料變化為浮點數型別 b 獲取的是除法操作的商,獲取的是除法操作的餘數 class operatordemo...
算術運算子
算術運算子 加 減 乘 除 或 div div只保留整數部分 模 或 mod 查詢員工的姓名和薪資 select ename,salary from t employee 查詢員工的姓名和原來的薪資和漲薪1000元後的薪資 select ename,salary,salary 1000 from t...
算術運算子
算術運算子 和 和 與我們學的數學的理論沒有差別就只舉乙個列子別的以此類推 輸出 13 除法 相對而言就特殊了一點分為兩種情況 1.兩個整數相除,除數不能為零,會報異常,這個符合我們學數學的理論,就不舉列子了 2.有浮點數除數或者被除數中存在浮點數,有三種情況 1 正整數除以0 0.0 2 負整數除...