天天看點

[C++][基礎]2_表達式

[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_cast

dynamic_cast支援運作時識别指針或引用所指向的對象。

與其他強制類型轉換不同,dynamic_cast涉及運作時類型檢查。

若綁定到指針或引用的對象不是目标類型對象,失敗!若是轉換到指針失敗,則dynamic_cast結果是0值,若是轉換到引用失敗,則抛出一個bad_cast異常。

const_cast

const_cast轉換掉表達式的const性質。

static_cast   

編譯器隐式執行的任何類型轉換都可以由static_cast顯示完成。

reinterpret_cast

reinterpret_cast通常為操作數的位模式提供較低層次的重新解釋。

轉換形式

:cast_type<convert_type>(expression);

  const char* p = "hello";

  const_cast<char*>(p);

繼續閱讀