C 筆記(2) 資料型別轉換

2021-10-01 12:30:57 字數 940 閱讀 1235

1、將一種型別的值賦值給另一種型別的變數,則自動轉化為接收型別的變數。

2、表示式中包含不同型別時,對值進行轉換。

在計算表示式時,c++將bool、char、unsigned char、signed char和short值轉化為int,true轉化為1,false轉化為0,這些稱為整形提公升(integral promotion)。

不同型別進行算數運算時,(1)如果有乙個運算元型別為long double,則將另乙個運算元型別轉變為long double;

(2)否則,如果有乙個運算元型別為double,則將另乙個運算元轉化為double;

(3)否則,如果有乙個運算元型別為float,則將另乙個運算元轉化為float;

(4)否則,說明運算元都是整形,因此執行整形提公升。

(5)在這種情況下,如果兩個運算元都是有符號或都是無符號的,且其中乙個運算元級別比另乙個高,則轉換為較高階別的型別;

(6)若果乙個有符號另乙個無符號,且無符號運算元級別高,則轉化為無符號數所屬型別;

(7)否則,如果如果有符號型別可表示無符號型別的所有可能取值,則轉化為有符號運算元所屬型別;

(8)否則,將兩個運算元都轉化為有符號型別的無符號版本(對預設有符號的型別加限定詞unsigned當無符號型別用)。

注釋:整型級別從高到低依次為:longlong,long,int,short,signed char=char=unsigned char。

3、將引數傳遞給函式時,對值進行轉換。

4、強制型別轉換

int th=8;

long (th);或 (long)th;第一種為c++風格,後者為c典型風格。

static_cast(value);更嚴格的強制轉換方式。

5、auto宣告

auto使編譯器根據初始值的型別推斷變數型別,形式為 auto vector_name = value;例如:auto z = 8;。

C 筆記05 資料型別轉換

本系列是基於人民郵電出版社 c 2008 c 教程 清華大學出版社 c 入門經典 第五版 兩本書的自學c 筆記,如果您發現了本文的紕漏,還望不吝指正。無論是什麼型別,所有的資料都是一系列的位,即一系列0和1。變數的含義是通過解釋這些資料的方式來傳達的。最簡單的示例是char 型別,這種型別用乙個數字...

C 資料型別轉換

轉cstring cstring.format t d int 轉char 1.itoa int,char 10 10為十進位制 沒有越界檢查 2.memset szbuf,0,sizeof szbuf snprintf szbuf,sizeof szbuf d int 轉tchar itoa in...

c 資料型別轉換

隱式型別轉換 這些轉換是 c 預設的以安全方式進行的轉換,不會導致資料丟失。例如,從小的整數型別轉換為大的整數型別,從派生類轉換為基類。轉換規則從儲存範圍小的型別到儲存範圍大的型別。整數具體規則為 byte short char int long float double也就是說byte型別的變數可...