C 的運算子與型別轉換

2021-08-18 10:08:54 字數 1048 閱讀 2416

c++中的運算子

(operator)可以將乙個或多個運算物件(

operand

)組合起來得到乙個結果。

c++中算數運算子+、

-、*和

/分別表示加法、減法、乘法和除法。對於除法運算子,當運算物件是整數時,其運算結果還是整數,也就是說,如果結果中包含小數,則直接捨棄。例如

int ival = 21/6;

int ival1 = 6/21;

此時,ival的值是3,而

ival1

的值是0

。在對運算物件進行運算時,運算物件常常由一種型別轉換成另外一種型別。例如

int ival = 3.1 + 3;

此時,c++語言不會將兩個不同型別的運算物件的值相加,而是先根據轉換型別規則將運算物件的型別統一後再求值。求值所遵循的轉換型別規則可以簡單概括為避免精度損失。所以,此時,運算物件

3會被轉換成

double

型別,然後執行浮點數加法,所得結果的型別是

double

。在csdn論壇中,由朋友將華氏溫度轉換成攝氏溫度時,用到如下表示式

c=5/9*(f-32);

其中,c表示攝氏溫度,

f表示華氏溫度。使用該表示式時,無論華氏溫度

f的值是多少,計算得到的攝氏溫度

c的值都是0。

其中的主要原因即為「1

運算子」中提到的,除法運算子在運算整數時,其結果只取整數部分,所以表示式中的「

5/9」的值一直是0。

根據「2

運算時的型別轉換」中提到的型別轉換規則,可以將除法表示式的運算元中的任意乙個改為

double

型別,則其結果可以轉換為

double

型別,如

c=5.0/9*(f-32);

或者

c=5/9.0*(f-32);

c 型別轉換運算子

c 中有4個型別轉換運算子,使裝換過程更規範 dynamic cast type name expression 如果轉型失敗則返回0,即空指標。該運算子的用途是,使得能夠在類層次結構中進行向上轉換 由於 is a關係,這樣的型別轉換時安全的 而不允許其他轉換。二 const cast const ...

C 型別轉換運算子

隱式轉換,是針對不同型別之間的賦值和運算,函式呼叫傳遞引數 這些的轉換都是由編譯器自動完成 char ch int i ch 顯式轉換 由程式設計師在變數前面新增型轉換 char pc char pb void ps void pa 通過上述的兩種方式,c語言大部分的型別轉換都可以順利進行,c 繼承...

C 型別轉換運算子

用於 指向派生類物件的 基類指標轉換成派生類指標。如果轉換失敗,則返回0,即空指標。通過判斷轉換是否成功,來決定是否用派生類裡的函式 基類中可能沒有那個函式 class a class b public a class c public b a a new a a b new b a c new c...