const在c 中的用法與意義

2022-09-11 12:15:25 字數 1439 閱讀 9146

在標準c++中,這樣定義的是乙個常量,用來修飾內建型別變數,自定義物件,成員函式,返回值,函式引數。

const使用(型別):

1、用於指標的兩種情況:const是乙個左結合的型別修飾符.

int const*a;//a可變,*a不可變

int*const a;//a不可變,*a可變

2、限定函式的傳遞值引數:

void function(const int var);//傳遞過來的引數在函式內不可以改變.

3、限定函式返回值型.

const int function();//此時const無意義

const myclassname function();//函式返回自定義型別myclassname.

4、限定函式型別.

void function()const;//常成員函式,常成員函式是不能改變成員變數值的函式。

1、指標本身是常量不可變

(char*) const pcontent;

const (char*) pcontent;

2、指標所指向的內容是常量不可變

const (char) *pcontent;

(char) const *pcontent;

3、 兩者都不可變

const char* const pcontent;

4、其中區別方法:

沿著*號劃一條線,

如果const位於*的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量;

如果const位於*的右側,const就是修飾指標本身,即指標本身是常量。

5、const修飾函式引數

const修飾函式引數是它最廣泛的一種用途,它表示函式體中不能修改引數的值(包括引數本身的值或者引數其中包含的值)。它可以很好

void function(const int var); //傳遞過來的引數在函式內不可以改變(無意義,因為var本身就是形參)

void function(const char* var); //引數指標所指內容為常量不可變

void function(char* const var); //引數指標本身為常量不可變(也無意義, 因為char* var也是形參)

引數為引用,為了增加效率同時防止修改。

6、修飾引用引數時:

void function(const class& var);//引用引數在函式內不可以改變

void function(const type& var); //引用引數在函式內為常量不可變

7、const 修飾函式返回值

const修飾函式返回值其實用的並不是很多,它的含義和const修飾普通變數以及指標的含義基本相同。

(1) const int fun1() 這個其實無意義,因為引數返回本身就是賦值。

(2) const int * fun2() 

8、呼叫時 const int *

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

const在c和c 中的用法

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