Tags:C++,《C++ Primer Plus》筆記
一余佃、分類##
見下圖紊遵,注意以下幾點(diǎn):
char16_t
清寇,char32_t
是C++11新增的類型。- 隨著編譯器和系統(tǒng)的不同巩搏,整型和浮點(diǎn)數(shù)所占的位數(shù)可能會(huì)不同,下圖中只記錄了可能的最小位數(shù)安疗,以作對(duì)比。
unsigned
版本能表示的數(shù)值是signed
版本絕對(duì)值的兩倍绘搞,他們就像表盤,一旦數(shù)值溢出傅物,多余的部分將重新輪回計(jì)數(shù)夯辖。- 默認(rèn)情況下,C++以
int
類型存儲(chǔ)整數(shù)值董饰,double
存儲(chǔ)浮點(diǎn)數(shù)蒿褂。
![Ccaculate](https://cxcuixiao.github.io/MyPriRep/img/Ccaculate.png)
</br>
二、聲明與賦值##
</br>
聲明###
C++中聲明值有多種方法:
(unsigned) typeName variable
(類型名 + 變量名)
unsigned
為可選為無符號(hào)值時(shí)才顯式加入卒暂。用于聲明一個(gè)變量啄栓。整形字面量,通過類型前后綴聲明創(chuàng)建一個(gè)常量:
#include <iostream>
int main() {
using namespace std;
cout << 42 << endl; //十進(jìn)制int
cout << 0x42 << endl; //八進(jìn)制int
cout << 042 << endl; //十六進(jìn)制int
cout << 1.492E3 << endl; //double
cout << 1492UL << endl; //unsigned long 1492
cout << 1.492F << endl; //float
}
<p style="text-indent:2em">用后綴時(shí)也祠,好的編程習(xí)慣要求全部大寫昙楚。</p>
-
const (unsigned) typeName variable
加上const
操作符,顯式聲明并立刻賦值一個(gè)不可更改的常量诈嘿,不可只聲明不賦值堪旧。
</br>
賦值###
C++中賦值算術(shù)類型有兩種方法:
- 使用
=
賦值運(yùn)算符:int a = 123;
- 使用列表賦值法:
int a {123};
</br>
三、整型##
整型只需要強(qiáng)調(diào) char
類型永淌。
- 用單引號(hào)
''
包括的內(nèi)容為char
字面值崎场,它等于引號(hào)內(nèi)容所對(duì)應(yīng)的字符集編碼。wcha_t
寬字符類型用于處理較大位的字符集遂蛀,它將定義為盡可能寬谭跨,用L
前綴標(biāo)識(shí):wchar_t bob = L'p';
char16_t
和char32_t
分別為16位和32位的字符類型,分別用u
和U
標(biāo)識(shí):char16_t ch1 = u'q'; char32_t ch2 = U'\U0000222B';
</br>
四李滴、浮點(diǎn)數(shù)##
浮點(diǎn)數(shù)有兩種書寫方式:
- 使用常用的標(biāo)準(zhǔn)小數(shù)點(diǎn)表示法螃宙。
- E表示法,即科學(xué)計(jì)數(shù)法所坯。
當(dāng)數(shù)值溢出時(shí)谆扎,將自動(dòng)轉(zhuǎn)換為E表示法,由于float
只保證6位有效芹助,因此通常該情況發(fā)生于 float
堂湖。
</br>
五、類型轉(zhuǎn)換(重點(diǎn))##
</br>
1. 初始化賦值轉(zhuǎn)換####
在用賦值運(yùn)算符 =
或列表賦值法 {}
時(shí)状土,所給 value
值將被轉(zhuǎn)化為指定的 type
類型无蜂。注意 {}
不支持縮窄轉(zhuǎn)換,否則將報(bào)錯(cuò)蒙谓。
</br>
2. 表達(dá)式中的轉(zhuǎn)換####
整型計(jì)算時(shí)斥季,小于 int
類型的值將全部轉(zhuǎn)化為 int
值進(jìn)行計(jì)算,大于的類型保留累驮。這被稱為整型提升酣倾。
其他情況時(shí)舵揭,遵照優(yōu)先級(jí)進(jìn)行轉(zhuǎn)化:
long double > double > float > long long > long > int > 較高級(jí)無符號(hào) > (可容納)較低級(jí)無符號(hào) > 同級(jí)無符號(hào) > 相同類型不轉(zhuǎn)換
后者類型將轉(zhuǎn)換為前者類型,優(yōu)先轉(zhuǎn)化前面的比較(類型比符號(hào)優(yōu)先)躁锡。
</br>
3. 參數(shù)傳遞轉(zhuǎn)化####
沒有控制參數(shù)類型的函數(shù)午绳,按照默認(rèn)(整型 int
,浮點(diǎn)數(shù) float
)情況進(jìn)行轉(zhuǎn)化稚铣。
</br>
4. 強(qiáng)制類型轉(zhuǎn)化(待添加)####
C++共5種箱叁,這里先記錄兩種
(typeName) value
(C風(fēng)格)或typeName (value)
,將value
強(qiáng)行轉(zhuǎn)化為typeName
類型惕医。static_cast<typeName> (value)
耕漱,將value
強(qiáng)行轉(zhuǎn)化為typeName
類型。