關鍵字 const用法集錦

2021-07-04 07:55:01 字數 2151 閱讀 1451

const 

作用:防止定義的變數or物件再次被修改

注意:const修飾的變數必須在定義時初始化,(當作為類的資料成員時例外)

用法如下:

1:修飾整個函式(常函式):防止修改非static成員變數

//常函式作用:防止修改非靜態(static)成員變數

//即static成員變數可以改變,其他變數無法改變

class example

};

2:修飾指標:防止*ptr或者ptr被修改

const出現在*的左邊,*ptr無法改變

出現在*的右邊,ptr 無法改變

//修飾指標

int a = 0;

int b = 0;

const int *ptr = &a;//修飾*ptr:不能通過*ptr改變a的值 *ptr = 10錯誤

int const *ptr = &a;//修飾*ptr:不能通過*ptr改變a的值 *ptr = 10錯誤

int *const ptr = &a;//修飾ptr :不能改變ptr的指向 ptr = &b錯誤

const int* const ptr = &a;//*ptr以及ptr都無法改變

3:修飾函式返回值:防止函式返回值被改變

//修飾返回值

const int max(int &a, int &b)

int &c = max(a,b)錯誤

const int &c = max(a,b)正確

4:修飾函式引數:當以引用或者指標傳遞函式引數時,如果函式引數不想被改變,可以加const保護

char *strcpy(const char *src, char *dest)

5:修飾變數:防止變數被修改

const int b = 0;

b = 10;//錯誤

6:修飾類的資料成員

定義類時無法初始化資料成員,因為編譯器不為類分配儲存空間,定義物件時才會分配儲存空間,const不是要在定義時初始化麼,那麼該怎麼辦呢??

const修飾的變數作為類的資料成員時,只能通過建構函式初始化,非靜態資料成員無法在類外初始化

類的靜態資料成員只能在類外初始化

class example

;//以上定義都是錯誤的

class example

;static int c = 0;

example::example(int x, int y) :a(x), b(y){}

int main()

7:節約記憶體空間,

const定義的變數, 系統只為它分配一次記憶體, 而使用#define定義的常量巨集, 定義幾次分配幾次, 這樣const就很節約空間

#define  pi  3.14       //使用#define巨集

const double pi = 3.14; //使用const,這時候pi並沒有放入記憶體中

double a = pi; //這時候才為pi分配記憶體,不過後面再有這樣的定義也不會再分配記憶體

double b = pi; //不會再分配記憶體,

double c = pi; //編譯時分配內

double d = pi; //編譯時再分配記憶體

8:const定義的變數只能作用於定義它的該檔案, 不能被該程式的其他c/c++檔案呼叫,

如file1.cpp中 const int val;

在file2.cpp中, extern int val;   //錯誤,無法呼叫,

要想const定義的變數能被其他檔案呼叫, 定義時必須使用extern修飾

如file1.cpp中 extern const int val = 10;

在file2.cpp中 extern const int val; //正確,可以呼叫,

非const變數預設為extern, 要使const修飾的變數能被其他檔案訪問必須顯示指定為extern

const關鍵字用法

1 const常量 如const int max 100 優點 const常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤 邊際效應 2 const修飾類的資料成員 class a const...

const關鍵字用法

const修飾符表示該變數的值不能被改變。但得分兩種情況討論 修飾普通變數和修飾指標變數。1.普通常量 const int foo 5 表示foo不能再被賦值 foo 8 錯誤,因為foo是const修飾為不可變常量了 2.修飾指標 const char p test 表示p指向 的記憶體不可改變,...

const關鍵字的用法

一 概述 被const修飾的變數都是唯讀的,當你的程式改變其值的時候,編譯器會報錯。const一般用來修飾變數,函式的引數,返回值和函式本身等。1.1 修飾變數 const int a 10 定義乙個const的int變數 const char p hello world const字串 char ...