C 型別的自動轉換和強制轉換

2021-10-07 09:50:59 字數 967 閱讀 7215

int a=12;

a=22.5+a;

int num=int(99.5);

int num2=(int)99.5;

//兩種寫法都正確

將浮點型變數賦值給整型變數時,捨棄小數部分

將整型資料賦值給浮點型變數時,數值不變,但是以指數形式儲存

將double型資料賦值給float型變數時,注意數值範圍溢位

字元型資料可以複製給整型變數,此時存入的是字元的ascii碼

將乙個int,short,long型資料賦值給乙個char型變數,只將低八位原封不動的送到char型變數中

將有符號資料賦值給長度相同的無符號型變數,連同原來的符號位一起傳送

使用者可以將其他型別轉換為當前型別,也可以將當前型別轉換為其它型別

這種自定義的型別轉換規則,只能以類的成員函式的形式出現

將其他型別轉換為當前型別需要借助轉換建構函式

class rectangle

;

型別轉換函式

型別轉換函式的作用就是將當前型別轉換為其他型別

它只能以成員函式的形式出現,也就是只能出現在類中

//型別轉換函式的語法格式

operatoe type()

type可以是內建型別,類型別,以及由typedef定義的型別別名,任何作為函式返回值的型別(void除外)都是被支援的(不允許轉換為陣列或函式型別,可以轉換為指標或引用型別)

型別轉換函式一般不會更改被轉換物件,所以通常被定義為const

型別轉換函式可以繼承,可以是虛函式

型別轉換函式看起來沒有返回值,其實是隱式指明了返回型別

型別轉換函式也沒有引數,因為要將當前類的物件轉換為其他型別

class rectangle

};int main()

執行結果

<<

c 類的自動型別轉換和強制型別轉換

下面討論類的型別轉換。我們先來看看c 是如何處理內建型別轉換的。將乙個標準型別變數的值賦給另一種標準型別的變數時,如果這兩種型別相容,則c 自動將這個值轉換為接受變數的型別。double time 11 int value 11 converted to type double利用建構函式將內建型別...

C 中的自動型別轉換和強制型別轉換

前面已經認識了不同的資料型別,你們有沒有嘗試過讓不同的資料型別進行運算呢?inmwywfswfnft a 1 double b a console.writeline b 執行結果是 1 我們把乙個整型的變數賦值給了乙個浮點型的變數,可以正常的輸出,如果我們把乙個浮點型的變數賦值給乙個整型的變數呢?...

C 之類的自動轉換和強制型別轉換

1.自動轉換 c 語言不自動轉換不相容的型別,例如,下面的語句 int p 10 是非法的,因為左邊是指標型別,而右邊是數字。不過在無法自動轉換時,可以使用強制型別轉換 int p int 10 上述語句將10強制轉換為int指標型別,將指標設定為位址10.c 程式設計師可以指示c 如何自動進行轉換...