c++中的儲存說明符種類如下:
cv限定符有:
下面詳細說一下功能
auto:
在c++11之前用來表示變數是一種自動型的變數,其儲存的生命週期為乙個函式或者**塊裡,若不顯式定義,預設為自動儲存變數。
而在c++11之後,auto被用作自動判別資料型別。
例如以下**(c++11標準及以上):
int a=1,b=2;
auto c=a+b;//c被判斷為int
int x=1;
double y=1.2;
auto z=x+y;//z被判斷為double
mapmp;
auto it=mp.begin();//it被判斷為mapiterator
register:
在c++11之前被定義為暫存器儲存變數,使得訪問和操作變數的速度更快。
而在c++11被定義為顯式表示變數是一種自動儲存變數(同c++11之前定義的auto)。
static:
表示靜態儲存變數,只要定義過一次,便永久儲存(直到程式結束),但是只能在乙個函式體和**塊或者乙個檔案中使用。可以用來記錄呼叫函式的次數、類建立物件的個數(不能在類的宣告裡直接初始化值,需要在外部初始化值)。若在全域性變數前加static,則只能在檔案中使用。
用來記錄函式呼叫次數**:
#includeusing namespace std;
int fun(int a)
int main()
;const preson a;
cout《最後輸出結果為
jack 18
19
以上**中物件a的成員中name由於const對a的限制,所以改變不了,但是age由於mutable的宣告所以可以進行改變。在結構體宣告中去掉mutable則不能編譯通過。
const限定符:
const的使用比較廣泛,可以用來定義常量,表示宣告一種不可被修改的變數。
volatile限定符:
《c++ primer plus》
C 說明符和CV限定符
1.下面是儲存所說明符 2.下面就是cv限定符 volatile 關鍵字volatile表明,即使程式 沒有對記憶體單元進行修改,其值也可能發生變化。例如,可以將指標指向某個硬體位置,其中包含了來自串列埠的時間和資訊。在這種情況下,硬體 而不是程式 可能修改其中的內容。或者兩個程式可能互相影響,共享...
說明符和限定符
有些被稱為儲存說明符或cv 限定符的c 關鍵字提供了其他有關儲存的資訊。儲存說明符 1 auto 在c 中不再是說明符 2 register 3 static 4 extern 5 thread local c 11新增的 6 mutable 下面就是cv限定符 1 const 2 volatile...
C 宣告之CV限定符
目錄 1.const 1.1 const obj 如果呼叫 non const member fun會編譯出錯 經典錯誤 1.2 例子 std裡的操作符過載 1.3 例子 cpp primer 15節 基類的定義 class complex complex operator const comple...