在標準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 來說...