[C++][基礎]2_表達式
2.1 算術操作符 2.2 關系操作符和邏輯操作符 2.3 位操作符 2.4 指派操作符 2.5 自增、自減操作符 2.6 箭頭操作符 2.7 條件操作符Eg:
int i =10, j = 20;
int max = (i > j) ? i : j;
2.8 sizeof 操作符sizeof其作用就是傳回一個對象或者類型所占的記憶體位元組數, 其傳回值類型為size_t。
2.9 逗号操作符逗号表達式是一組由逗号分隔的表達式,這些表達式從左向右計算,但傳回的結果是其最右邊表達式的值。
Eg:
int i =
(2+1, 3+2, 5*3);
cout << i
<< endl;
2.10 複合表達式的求值 2.11 new 和delete 表達式 2.12 類型轉換 2.12.1 何時發生隐式轉換在混合類型的表達式中,用作條件的表達式被轉換為bool類型
用一個表達式初始化某個變量,或将某一個表達式指派給某個變量,則表達式被轉換為該變量的類型。
int ival
= 3.14; //3.14轉為整數
int *ip;
ip = 0; //0轉為指針
2.12.2 算術轉換在算術表達式中,會将操作數類型轉為表達式中的最大類型。
2.12.3 強制轉換強制類型轉換符
dynamic_castdynamic_cast支援運作時識别指針或引用所指向的對象。
與其他強制類型轉換不同,dynamic_cast涉及運作時類型檢查。
若綁定到指針或引用的對象不是目标類型對象,失敗!若是轉換到指針失敗,則dynamic_cast結果是0值,若是轉換到引用失敗,則抛出一個bad_cast異常。
const_castconst_cast轉換掉表達式的const性質。
static_cast編譯器隐式執行的任何類型轉換都可以由static_cast顯示完成。
reinterpret_castreinterpret_cast通常為操作數的位模式提供較低層次的重新解釋。
轉換形式:cast_type<convert_type>(expression);
const char* p = "hello";
const_cast<char*>(p);