由於考研的程式設計題很多都需要使用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或llong型別
1000l,由於小寫可能引起混淆,所以最好使用大寫l
ll或ll
long long型別
1000ll,最好採用大寫形式
浮點數字面值可以有小數和科學計數法兩種形式 ,以下都是有效的浮點型字面值。
3.14 0.4 .4 1e10 0.
浮點型字面值的字尾情況見下表。
字尾含義
例子f或f
單精度浮點數
0.4f
l或llong 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』
uchar32_t型別
u』c』
l寬字元
l』c』
u8utf-8字串,僅能用於字串字面量
3.14
布林值字面量只有true
和false
兩個。
C 學習筆記一 (基本資料型別)
1.當已知數值不可能為負時,盡量採用unsigned char 2.若是表示byte 位元組 型別,都用unsigned char 在進行轉化為int,不會進行位擴充套件 3.有些機器上用long型別進行計算的消耗遠遠大於int,所以能用int盡量用int,更大數字用long long 4.表示浮點...
C 學習筆記之基本資料型別
1 型別推斷 使用關鍵字 var修飾 2 常量 使用關鍵字 const 修飾 3 整型 3.1 sbyte 8位有符號整數 3.2 byte 8位無符號整數 3.3 short 16位有符號整數 3.4 ushort 16位無符號整數 3.5 int 32位有符號整數 3.6 uint 32位無符號...
C 學習 基本資料型別
整型,字元型,布林型,浮點型 c c 標準只定義了最低的位數,而不是必需的固定位數 bool 布林型 char 字元型 8位 wchar t 寬字元型 16位 short 短整型 16位 int 整形 16位 long 長整形 32位 float 單精度浮點型 6為有效數字 double 雙精度浮點...