C++ Primer 5th笔记(2)chapter 2变量和基本类型
1. c++標準規定的算術類型的尺寸
| wchat_t | 寬字符 | 16 |
| char16_t | unicode字符 | 16 |
| char32_t | unicode字符 | 32 |
| short | 短整型 16 | |
| int | 整型 | 16 |
| long | 長整型 | 32 |
| long long | 長整型 | 64 |
| float | 單精度 | 6位有效數字 |
| double | 雙精度 10位 | |
| long double | 擴展精度 | 10位 |
我這里有一個疑問,等待去解決:. 書上說浮點數盡量用double而不用float?理由是float通常精度不夠而且double和float的計算代價差不多。
2. 類型轉換
Question1 : int 轉為double 會四舍五入不?
Question2 : 假設char 占8位,
unsigned char c = -1; //c的值為多少?
signed char c = 256; //c的值未定義
Question3 :unsigned u1=42, u2 = 10;// u2 -u1 為多少?
代碼解決:
void testVariable() {float f1 = 4.4f;float f2 = 4.5f;int n1 = int(f1);int n2 = int(f2);unsigned char c = -1; //c的值為255(該值對256取模后所得的余數)//signed char c = 256; //c的值未定義)unsigned u1 = 42, u2 = 10;bool b = (c != 255);std::cout << n1 << ";" << n2 << ";" << b << ";" << u2 - u1 << std::endl; }測試結果為:
4;4;0;4294967264
3. 轉義字符
常用的幾個:
\r
\n
\t
\"
\’
或者后面緊跟不超過3個8進制數字,字母x假設1個16進制數。
eg.
大寫字母M 的asii值如下:
2進制:0100 1101
8進制:0115
10進制:77
16進制:0x4D
輸出結果為:
4. 指定字面值的類型
分為前綴和后綴
前綴:u U L u8
后綴:u U l L ll LL
eg.
L’a’ //寬字符型字面值,類型是wchar_t
u8"hi" //utf-8字符串字面值(utf-8用8位編碼一個Unicode字符)
42ULL //無符號整型字面值,類型為unsigned long long
1E-3F //單精度浮點型字面值,類型為float
3.14159L //擴展精度浮點型字面值,類型為long double
參考
[1]: 代碼 https://github.com/thefistlei/cplusprimer/tree/main/cprimer
總結
以上是生活随笔為你收集整理的C++ Primer 5th笔记(2)chapter 2变量和基本类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 5th笔记(1)c
- 下一篇: C++ Primer 5th笔记(2)c