C++ 基本數據類型

由于考研的編程題很多都需要使用C++語言來寫,所以雖然我不太喜歡C++這門語言,那么還是得來看看。

算術類型

需要提前說明,C++語言屬于比較低級的語言,所以沒有規定數據類型的具體大小,所有數據類型都可能由于機器不同而產生差異。標準只規定了這些數據類型的最小范圍,這一點我們在使用C++的時候也要注意。

整型

整型數據類型和它們的大小總結在下表:

數據類型 含義 最小單位
bool 布爾類型 未定義
char 字符類型 1字節
wchar_t 寬字符類型 2字節
char16_t Unicode字符類型 2字節
char32_t Unicode字符類型 4字節
short 短整型 2字節
int 整型 2字節
long 長整型 4字節
long long 長整型 8字節

wchar_t、char16_t和char32_t 是擴展字符類型,第一個用于寬字符,后兩者用于Unicode字符集。

浮點型

浮點型數據類型和它們的大小總結在下表:

數據類型 含義 最小單位
float 單精度浮點類型 6位有效數字
double 雙精度類型 10位有效數字
long double 擴展精度類型 10位有效數字

帶符號的類型

在前面介紹的整型類型中,除了布爾類型和擴展的字符類型之外,其他整型都可以是有符號的(signed)和無符號的(unsigned),它們的區別在于取值范圍。假如一個有符號變量的取值范圍是-128到127,那么相應的無符號數取值范圍就是0到255。默認情況下,類型是有符號類型,如果需要無符號類型需要顯式指定。

在進行運算的時候,有符號數會被轉換為無符號數進行運算,在這個過程中運算結果可能意外改變。所以為了穩妥起見,不要將有符號數和無符號數混合進行計算。

字面量

直接寫在程序中的值稱為字面量。由于數據類型有不同類型,所以字面量相應的也有不同的類型。

整型字面量

整型字面值可以有十進制、八進制和十六進制的形式。默認的數字就是十進制的,例如100;如果數字以0開頭,那么就是八進制的數,例如024;如果數字以0x或0X開頭,那么就是16進制的,例如0xcafe。

后綴 含義 例子
u或U 無符號數 1000U
l或L long類型 1000L,由于小寫可能引起混淆,所以最好使用大寫L
ll或LL long long類型 1000LL,最好采用大寫形式

浮點型字面值

浮點數字面值可以有小數和科學計數法兩種形式 ,以下都是有效的浮點型字面值。

3.14   0.4   .4   1e10   0.

浮點型字面值的后綴情況見下表。

后綴 含義 例子
f或F 單精度浮點數 0.4F
l或L long double類型 10.00L,最好使用大寫L
無后綴 雙精度浮點數 3.14

字符和字符串字面值

由單引號包括的單個字符是字符字面量,例如'c'

由雙引號包括的一串字符是字符串字面量,例如"abc",需要注意在C++中,字符串字面量會由編譯器隱式添加一個\0字符,以兼容C語言。所以"abc"這個字符串的長度其實是4。這一點需要注意。

如果兩個字符串字面量僅由空格分隔,那么這兩個字符串實際上是相連的。

char long_string[] = "This is a long line "
    "and next line";

字符和字符串字面量也有一些前綴,總結如下。

前綴 含義 例子
u char16_t類型 u'c'
U char32_t類型 U'c'
L 寬字符 L'c'
u8 UTF-8字符串,僅能用于字符串字面量 3.14

布爾值字面量

布爾值字面量只有truefalse兩個。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容