const在c和c 中的用法

2021-09-26 09:41:42 字數 1264 閱讀 6664

c中const的用法總結起來主要分為以下兩種:

1、 在定義變數時使用(由於const常量在定義後不能被修改,所以在定義時一定要進行初始化操作):

a)  最簡單的用法,說明變數為乙個常變數(在以下例子裡,int 和const的先後順序可以改變的,這無所謂):

const int a=100; 

int const b=100;

b)  說明指標為指向常數的指標,即指標本身的值是可以改變的:

const int *a=&b;
c)  說明指標本身的值不可改變,但指向的內容可改變:

const int *a=&b;
d)  說明指標為指向常數的常指標,即指標本身與指標指向的內容都不可改變:

const int * const a = &b;
e)  說明引用為常數引用,即不能改變引用的值:

const int &a=100;
2,、 在定義函式時使用:

a) 作為引數使用,說明函式體內是不能修改該引數的:

void func(const int a);
b) 作為返回值使用,說明函式的返回值是不能被修改的:

const int func();
c) 在函式中使用const,情況與定義變數的情況基本一致: 

c++中區別於c的const用法主要分為以下兩種:

1, const類成員

const類成員在物件構造期間允許被初始化並且在以後不允許被改變。const類成員和一般的const 變數有所不同。const類成員是對應於每個物件而言,它在物件構造期間被初始化,在這個物件的生存週期中不允許被改變。

2, const 成員函式

const 成員函式不允許在此函式體內對此函式對應的類的所有成員變數進行修改,這樣可以提高程式的健壯性。const一般放在函式體後:

functiontype  fun()  const;
3,const在c和c++中最大的不同是,在c中,const預設具有外部鏈結,而c++中則是內部鏈結。所以當你只在定義const常量的檔案中使用該常量時,c++不給你的const常量分配空間,此時const int c = 0;相當於#define c 0;而在c中,它會給每個const 常量分配記憶體空間。

const在c和c 中的用法

下面只是針對於基本型別 對於標準c來說 const修飾的變數是唯讀變數,會分配記憶體空間。但是不能作為左值直接改變。可以通過指標來改變 對於現代c編譯器來說 會做一些優化,會進入符號表。如果有對記憶體的操作出現,那麼它就不會去符號表取值,而是去記憶體中取值。這個和c 進入符號表有些不同。對於c 來說...

const在c中的用法

常量和變數的樣子完全一樣,只是常量的值不允許被修改。我們用const這個關鍵字來宣告乙個常量。例 const int a 10 int const a 10 兩種方式都可以宣告乙個常量效果是一樣的。我們也可以用const來修飾指標 const與識別符號 例 define num 20 const i...

const在c 中的用法分析

include using std cout using std endl int main 對於const char 和 char const之間的分析,如 中的const char pstring i am chinese 定義初始化後 i am chinese 這個變數為常量唯讀,如果用pst...