c 儲存說明符以及cv限定符總結

2021-08-21 09:49:29 字數 1158 閱讀 3179

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...