const在c++中是乙個十分重要的修飾符,而它的用法在不同的也有很多種,除了我們常用的,還有一些不常用的。今天一併全部整理。const 是對變數或物件起保護作用,防止變數或物件被修改。下面來講解其中的用法。
舉例說明:const int a = 3; 表示變數a為const 型別常量,即a無法被修改。其中的int是變數型別的借代,但不包括指標,指標下面再講。其中 const int a 和int const a 用法上沒有區別,都是用來修飾a這個變數的。
指標和const的關係總共有3中,分別為:
const int* a = &b;或int const *a = b; 兩者為等效
int* const a = &b;
const int* const a = &b;
我們將這個分為const在*號前和*後,*前就表示指標所指的變數時const常量。*後就表示指標本身就是const 常量。其他即可不管。上述第乙個即指標a指向的變數時乙個const常量,而第二個則表示指標變數a為const常量。第三個當然就是前面兩種的結合。用的很少。
舉例說明:void input(const int a,const int b);代表的傳入的引數a和b為const常量,在函式內部不會被修改。用作保護傳入引數防止被函式內部的操作修改。
對於一般函式而言,返回值其實沒有新增const的必要,例如 int getresult();一般都是使用返回值進行左值運算,而getresult() = 3;這種用法是錯誤的。那麼,這個const與返回值有何作用呢?我們舉例說明
class testdemo
}
上述**中,我們是能夠執行 getresult() = 3;這樣的操作的,因為函式 int &getresult();返回的是當前類成員變數a的引用。即返回的是成員變數a。而getresult() = 3;的含義就是 testdemo::a = 3;因此,這個時候,新增const 在返回值之前,就是保護這個成員變數不被修改。至於新增引用本身就是為了能夠對成員變數進行變相的賦值,而在此新增const 則是阻止它的賦值。其實還是有些矛盾的。
這種情況用的很少,我們依舊舉例說明:
class testdemo
int read()const
}
上述**中,在int read();函式後面新增了const修飾符,起到什麼樣的作用呢?其實,這個函式是保護在read()函式內部,類的成員變數不被修改,是所有的成員變數均不能被修改。這個函式入口處沒有指定具體變數。
整理C 中 const 的用法
const是c 中乙個關鍵字,基本的含義是 無法修改的 它有多種用法,最基礎的用法是用它來修飾乙個變數,例如 const int i 5 也可以在函式宣告中使用,此時就可能在多個地方看到這個詞了。例如乙個誇張的場合是在 返回值 引數 函式宣告的末尾 都看到它的出現 const intfunc con...
C 中const的用法
1 const修飾普通變數和指標 1 const修飾普通變數 其寫法有2種 a const type value b type const value 這兩種寫法本質上是一樣的。其含義是 const修飾的型別為type的變數value是不可變的。2 const修飾指標 a const char va...
關於c 中const的用法
1.當然最常用的還是作為常量。1 const int p的用法,表示指向的值得型別不變還是int型,但p的值可以變,可以這樣理解 自以為指向const的指標 可以將非const的物件賦值給他例如可以這樣 int i 3 int j 4 const int p p i cout p p j cout ...