C++類型
首先明確一個概念,什麼是類型?我們知道程序可以說是由兩部分組成:數據結構+算法。通過學習數學,我們知道形容一個東西的存在是形式時,我們可以用個,塊,桶,串等詞來描述,在買賣過程中,使用貨幣時,我們有元角分單位。在描述這些東西存在的數量時,我們就用到了數字,不同國家的語言在描述數量時的手法不一樣。所以爲了能將這些雜七雜八的東西給存入計算機,計算機對數據的存儲進行了分類,並統一了類型標準。
基本數據類型
bool | 存儲值 true / false |
char | 通常存儲一個 八位 字符 |
int | |
float | 單精度浮點值。單精度是這樣的格式,二進制從左往右:1位符號,8位指數,23位小數。 |
double | 雙精度浮點值。雙精度是1位符號,11位指數,52位小數。 |
void | 表示類型的缺失 |
wchar_t | 寬字符類型,char是8位字符類型,最多隻能包含256種字符,許多外文字符集所含的字符數目超過256個,char型無法表示。
wchar_t數據類型一般爲16位或32位,但不同的C或C++庫有不同的規定,如GNU Libc規定wchar_t爲32位,總之,wchar_t所能表示的字符數遠超char型 |
修飾符
在基本數據類型的情形下,還有一個修飾符的概念,可以理解爲加上修飾符改變數據類型的範圍。
修飾符 signed、unsigned、long 和 short 可應用於整型,signed 和 unsigned 可應用於字符型,long 可應用於雙精度型。修飾符 signed 和 unsigned 也可以作爲 long 或 short 修飾符的前綴。例如:unsigned long int。C++ 允許使用速記符號來聲明無符號短整數或無符號長整數。您可以不寫 int,只寫單詞 unsigned、short 或 unsigned、long,int 是隱含的。extern 修飾符通常用於當有兩個或多個文件共享相同的全局變量或函數的時候。使用 static 修飾局部變量可以在 函數調用之間 保持局部變量的值,static 修飾符也可以應用於全局變量,當 static 修飾全局變量時,會使變量的作用域限制在聲明它的文件內,在 C++ 中,當 static 用在 類數據成員 上時,會導致僅有一個該成員的副本被類的所有對象共享。
限定符
const | const 類型的對象在程序執行期間不能被修改改變 |
volatile | 修飾符 volatile 告訴編譯器不需要優化volatile聲明的變量,讓程序可以直接從內存中讀取變量。對於一般的變量編譯器會對變量進行優化,將內存中的變量值放在寄存器中以加快讀寫效率 |
restrict | restrict的定義是:It can be applied only to pointers, and it indicates that a pointer is the sole initial means of accessing a data object。表示指針指向的內存不能被別的指針引用。告訴編譯器被restrict修飾的指針所指 向的對象,只能通過這個指針或基於這個指針的其他指針進行操作,這對編譯器的優化很有好處。 |
C++關鍵字
每個關鍵詞詳細解釋請轉移至:https://zh.cppreference.com/w/cpp/keyword