|
|
a
、b
和 result
,但我們本可以給這些變數起任何我們能想到的名字,只要它們是有效的C++識別符號。_
)組成的序列。空格、標點符號和符號不能成為識別符號的一部分。此外,識別符號必須總是以字母開頭。它們也可以以下劃線字元(_
)開頭,但在大多數情況下,這類識別符號被認為是為編譯器特定的關鍵字或外部識別符號保留的,以及任何位置包含兩個連續下劃線字元的識別符號。在任何情況下,它們都不能以數字開頭。alignas, alignof, and, and_eq, asm, auto, bitand, bitor, bool, break, case, catch, char, char16_t, char32_t, class, compl, const, constexpr, const_cast, continue, decltype, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, noexcept, not, not_eq, nullptr, operator, or, or_eq, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while, xor, xor_eq
RESULT
與變數 result
或變數 Result
是不一樣的。這是三個標識了三個不同變數的不同識別符號。'A'
或 '$'
。最基本的型別是 char
,它是一個單位元組的字元。還提供了用於更寬字元的其他型別。7
或 1024
。它們有多種大小,並且可以是有符號(signed)或無符號(unsigned),這取決於它們是否支援負值。3.14
或 0.01
,具有不同級別的精度,具體取決於使用三種浮點型別中的哪一種。bool
,只能表示兩種狀態之一:true
或 false
。分組 | 型別名稱* | 關於大小/精度的說明 |
---|---|---|
字元型別 | char | 大小恰好為一個位元組。至少8位。 |
char16_t | 不小於 char 。至少16位。 | |
char32_t | 不小於 char16_t 。至少32位。 | |
wchar_t | 可以表示支援的最大字元集。 | |
整數型別(有符號) | signed char | 與 char 大小相同。至少8位。 |
signed short int | 不小於 char 。至少16位。 | |
signed int | 不小於 short 。至少16位。 | |
signed long int | 不小於 int 。至少32位。 | |
signed long long int | 不小於 long 。至少64位。 | |
整數型別(無符號) | unsigned char | (與它們的有符號對應型別大小相同) |
unsigned short int | ||
unsigned int | ||
unsigned long int | ||
unsigned long long int | ||
浮點型別 | float | |
double | 精度不低於 float | |
long double | 精度不低於 double | |
布林型別 | bool | |
Void 型別 | void | 無儲存空間 |
空指標 | decltype(nullptr) |
signed
和 int
部分進行縮寫——只有非斜體部分是必需的,斜體部分是可選的。例如,signed short int
可以縮寫為 signed short
、short int
或乾脆 short
;它們都表示相同的基本型別。char
(其大小恰好為一個位元組)外,沒有任何基本型別指定了標準大小(最多隻有一個最小大小)。因此,該型別不被要求(並且在許多情況下不)恰好是這個最小大小。這並不意味著這些型別的大小不確定,而是意味著在所有編譯器和機器上沒有一個標準大小;每個編譯器實現可以為這些型別指定最適合程式將要執行的架構的大小。這種對型別相當通用的尺寸規定為C++語言提供了很大的靈活性,使其能夠適應在各種平臺(無論是現在還是未來)上以最佳方式工作。大小 | 可表示的唯一值數量 | 備註 |
---|---|---|
8位 | 256 | = 28 |
16位 | 65 536 | = 216 |
32位 | 4 294 967 296 | = 232 (約40億) |
64位 | 18 446 744 073 709 551 616 | = 264 (約1800億億) |
char
、int
和 double
來分別表示字元、整數和浮點值。它們各自組中的其他型別僅在非常特殊的情況下使用。<limits>
)。如果出於某種原因需要特定大小的型別,庫在標頭檔案 <cstdint>
中定義了一些固定大小的類型別名。void
,它表示型別的缺失;以及型別 nullptr
,它是一種特殊的指標型別。這兩種型別都將在後面關於指標的章節中進一步討論。
|
|
int
、識別符號為 a
的變數。第二個聲明瞭一個型別為 float
、識別符號為 mynumber
的變數。一旦宣告,變數 a
和 mynumber
就可以在程式中它們作用域的其餘部分使用。
|
|
a
、b
和 c
),它們都是 int
型別,並且與以下寫法的含義完全相同:
|
|
|
|
4 |
型別 識別符號 = 初始值;
x
的 int
型別變數,並在宣告的同時將其初始化為零,我們可以這樣寫:
|
|
()
)中:型別 識別符號 (初始值);
|
|
{}
)代替圓括號(這是由2011年C++標準修訂版引入的):型別 識別符號 {初始值};
|
|
|
|
6 |
auto
作為變數的型別說明符:
|
|
bar
被宣告為 auto
型別;因此,bar
的型別就是用來初始化它的值的型別:在這種情況下,它使用 foo
的型別,即 int
。decltype
說明符進行型別推導:
|
|
bar
被宣告為與 foo
具有相同的型別。auto
和 decltype
是最近新增到語言中的強大功能。但它們引入的型別推導功能旨在用於無法透過其他方式獲取型別,或使用它能提高程式碼可讀性的情況。上面的兩個例子可能都不屬於這兩種用例。事實上,它們很可能降低了可讀性,因為在閱讀程式碼時,必須去查詢 foo
的型別才能真正知道 bar
的型別。string
類就是一個複合型別的例子。這種型別的變數能夠儲存字元序列,例如單詞或句子。這是一個非常有用的功能!<string>
):
|
|
This is a string |
|
|
|
|
This is the initial string content This is a different string content |
endl
運算子會結束行(ends the line),即列印一個換行符並重新整理流。![]() 程式結構 | ![]() 目錄 | ![]() 常量 |