數據類型、表達式 類型轉換
數據類型與表達式
cout操縱符:hex,十六進製 oct八進製 dec十進製(默認)
進製表示:八進製以數字0為前綴;十六進製以0X或0x做前綴。(是數字0,不是字母o)
double型數字判斷相等可以用 fabs(a-b)<1e-6
轉義符:反斜線\ \a為響鈴
一個語句太長可以分行寫,行尾要用‘\’(注意其後不能有空格)
注意區分邏輯運算符與關係運算符。
位運算符有 ~ << >> & ^ | 六個。將數字轉換為二進製後進行相應的按位操作。
可以連續賦值:a=b=c=1;
sizeof()用來判斷一個類型或者變量所占內存的大小,單位為字節,byte。1 byte=8 bit
舊式強製類型轉換: (新類型)(表達式或變量)
用小括號賦初值。int a(3),b(4);。
逗號‘,’標記符可以將多個表達式組成為一個語句塊,如用在for()中: for(a=2,b=3;a!=0;a--,b--){...}
int x=2,y=3,z=4;cout<<(x,y,z);//逗號表達式,取最後的語句作為結果 故輸出4
for 與 while
類型轉換
1.1 reinpreter_cast<type-id>
用法:reinpreter_cast<type-id> (expression)type-id必須是一個指針、引用、算術類型、函數指針或者成員指針。它可以把一個指針轉換成一個整數,也可以把一個整數轉換成一個指針。
這個操作符能夠在非相關的類型之間轉換。操作結果隻是簡單的從一個指針到別的指針的值的二進製拷貝。在類型之間指向的內容不做任何類型的檢查和轉換。reinpreter_cast是特意用於底層的強製轉型,導致實現依賴(就是說,不可移植)的結果。
int n=9;
// reinterpret_cast 僅僅是複製 n 的比特位到 d,因此d 包含無用值。
double d=reinterpret_cast<double & > (n);
1.2 const_cast
用法:const_cast<type_id> (expression)用於修改類型的const或volatile屬性。除了const 或volatile修飾之外,type_id和expression的類型是一樣的,一般用於強製消除對象的常量性。它是唯一能做到這一點的 C++ 風格的強製轉型,而C不提供消除const的機製(已驗證)。
1.3 static_cast<>
在兩個完全不相幹的類之間進行轉換,將會導致編譯出錯。1.4 dynamic_cast<>
隻用於對象的指針和引用,主要用於執行“安全的向下轉型”,也就是說,要確定一個對象是否是一個繼承體係中的一個特定類型。
最後更新:2017-04-03 12:55:42