隱式轉換和顯示轉換

2021-07-25 10:00:44 字數 1505 閱讀 5101

**:

0前言1)c++的型別轉換分為兩種,一種為隱式轉換,另一種為顯式轉換。

2)c++中應該盡量不要使用轉換,盡量使用顯式轉換來代替隱式轉換。 1

隱式轉換

定義:隱式轉換是系統跟據程式的需要而自動轉換的。

1)c++型別(char,int,float,long,double等)的隱式轉換:

算術表示式隱式轉換順序為:

1、char - int - long - double

2、float - double

//

1)算術表示式

int m = 10

;double n = m;//

n = 10.0;隱式把m轉為double型別

int m = 10

;float f = 10.0

;double d = m + f;//

n = 20.0;隱式把m和f轉為double型別

//2)賦值

int *p = null; //

null(0)隱式轉換為int*型別的空指標值

//3)函式入參

float add(float

f);

add(

2); //

2隱式轉換為float型別

//4)函式返回值

double minus(int a, int

b)

2)c++類物件的隱式轉換:

void

fun(ctest test);

class

ctest

fun(

20);//

隱式轉換

2顯式轉換

定義:顯式轉換也叫強制轉換,是自己主動讓這個型別轉換成別的型別。

1)c++型別(char,int,float,long,double等)的顯式轉換:

int m = 5

;char c = (char)m;//

顯式把m轉為char型別

double d = 2.0

;int i = 1

;i += static_cast(d);//

顯式把d轉換為int型別

2)c++類物件的顯式轉換:當類建構函式只有乙個引數或除了第乙個引數外其餘引數都有預設值時,則此類有隱含的型別轉換操作符(隱式轉換),但有時隱式轉換並不是我們想要的,可在建構函式前加上關鍵字explicit,來指定顯式呼叫。

void

fun(ctest test);

class

ctest

fun(

20);//

error 隱式轉換

fun(static_cast(20)); //

ok 顯式轉換

c 隱式轉換顯示轉換

1 隱式轉換 一般是低型別向高型別轉化,能夠保證值不發生變化。隱式數值轉換 從 sbyte 到 short int long float double 或 decimal。從 byte 到 short ushort int uint long ulong float double 或 decimal...

C 隱式和顯示型別轉換

c 是在編譯時靜態型別化的,因此變數在宣告後就無法再次宣告,或者無法用於儲存其他型別的值,除非該型別可以轉換為變數的型別。1.隱式型別轉換 隱式轉換,就是系統預設的轉換,其本質是小儲存容量資料型別自動轉換為大儲存容量資料型別,該轉換是一種安全型別的轉換,不會導致資料丟失,因此不需要任何特殊的語法。下...

隱式轉換和

boolean true true false true true true 本來以為理所當然應該這樣的問題,原來好複雜。ecmascript中相等操作符 這種操作符會先轉換運算元 隱式轉換 然後再比較它們的相等性。基本轉換規則 如果有乙個運算元是布林值,則在比較相等性之前先將其轉換為數值 fals...