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...