C++基礎學習數據知識點

C++基礎學習數據知識點

首先來說點題外話,很多人問我如果沒有基礎,又沒有老師教,想自學C語言可以嗎?當然可以,自學可以從比較基礎的入門教材書籍看起,也可以結合教學視頻一起學習,網絡上免費的教學視頻不少,當然,自學關鍵是自制力,要有持之以恆的精神,遇到不懂的地方可以藉助網絡尋找解決方法,最好理解到一定的程度之後,自己動手編程,實踐,練得多了就慢慢掌握了。

好了,現在迴歸正題!

基本數據類型

類型 關鍵字 描述 所佔字節數 最大值 最小值

布爾型 bool 存 值 true 或 false bool 1 0

字符型 char 通常是一個八位字節(一個字符)。這是一個整數類型 1

整型 int 對機器而言,整數的最自然的大小 4 2147483647 -2147483648

浮點型 float 單精度浮點值。單精度是這樣的格式,1 位符號,8 位指數,23 位小數。 4 3.40282e+38 1.17549e-38

雙浮點型 double 雙精度浮點值。雙精度是 1 位符號,11 位指數,52 位小數。 8 1.79769e+308 2.22507e-308

無類型 void 表示類型的缺失。

寬字符型 wchar_t wchar_t 寬字符類型。2 或 4 2147483647 -2147483648`這裡寫代碼片

C++基礎學習數據知識點

修飾符

C++ 允許在 char、int 和 double 數據類型前放置修飾符,可以使用一個或多個類型修飾符進行修飾

修飾符 可修飾

signed 整型、字符型

unsigned 字符型

short 整型

long 雙精度型

可以使用速記符號來聲明無符號短整數或無符號長整數。可以不寫 int,只寫單詞 unsigned、short 或 unsigned、long,int 是隱含的。例如,下面的兩個語句都聲明瞭無符號整型變量。

unsigned x;

unsigned int y;

定義常量

使用 #define 預處理器。

使用 const 關鍵字。

define A 1;

//or

const int B = 2;

//也可以修飾指針

const int *p = &B;

//===

int const *p = &B;

//或者直接修飾p

int *const p = &B;

⚠️ 最好把常量定義為大寫字母形式,

歡迎大家來學習。qun710520381 學習編號:久伴

C++ 存儲類

存儲類定義 C++ 程序中變量/函數的範圍(可見性)和生命週期。

auto

register

static

extern

mutable

thread_local (C++11)

⚠️ 從 C++ 11 開始,auto 關鍵字不再是 C++ 存儲類說明符,且 register 關鍵字被棄用。

auto

auto 用於聲明變量時根據初始化表達式自動推斷該變量的類型、聲明函數時函數返回值的佔位符

register

register 用於定義存儲在寄存器中而不是 RAM 中的局部變量

定義 ‘register’ 並不意味著變量將被存儲在寄存器中,它意味著變量可能存儲在寄存器中,這取決於硬件和實現的限制。

static

static 保持局部變量的存在,不需要在每次它進入和離開作用域時進行創建和銷燬,static 修飾符也可以應用於全局變量。當 static 修飾全局變量時,會使變量的作用域限制在聲明它的文件內

extern

extern 用於提供一個全局變量的引用,全局變量對所有的程序文件都是可見的,對於無法初始化的變量,會把變量名指向一個之前定義過的存儲位置。

這裡有個疑問,全局變量的值在程序的整個生命週期內都是有效的,這個是指只能在生命它的文件內還是對所有文件起效? 那麼 extern 和 static 修飾全局變量的功能不是有一個多餘的嗎?

thread_local

使用 thread_local 聲明的變量僅可在它在其上創建的線程上訪問。 變量在創建線程時創建,並在銷燬線程時銷燬。 每個線程都有其自己的變量副本。

thread_local 說明符可以與 static 或 extern 合併。

可以將 thread_local 僅應用於數據聲明和定義,thread_local 不能用於函數聲明或定義。


分享到:


相關文章: