一、const介紹
關鍵字const是c/c++中的型別限定符(qualified type),以const關鍵字宣告的物件,其值不能通過賦值或遞增、遞減來修改,但可以初始化const變數。
二、用法說明
先來看乙個簡單的例子:
#include int main(int argc, char **ar**)
正如上面的注釋所說的那樣,第一行**可以工作,因為它是對"const int"型別的變數"a"初始化;而第二行**不工作,因為它先定義了乙個"const int"型別的變數,然後對"a"賦值。
用關鍵字const修飾普通變數和陣列相對簡單和容易理解,當用來修飾指標時,要複雜一些,因為需要區分是限定指標本身為const還是限定指標指向的值為const,再來看下面的例子:
#include int main(int argc, char **ar**)
上面的例子中,const限定指標a所指向的值*a是不可變的,但指標a本身是可變的,可以隨時指向其他的記憶體位置。
要想限定指標a本身不可變,將限定符const放在*的右側即可,如下:
int * const a; // a is const
此時,指標a本身的值不可變,a必須指向同乙個位址,但是它所指向的值可以改變。
三、總結
用const來限定普通變數,其值不可變。
用const來限定指標,需要注意區分是限定指標本身為const還是限定指標指向的值為const。當const放在*左邊任意位置,限定了指標指向的資料不能改變;當const放在*右邊,限定了指標本身不能改變。
最後的這個例子和編譯錯誤提示很好的總結了以上幾點:
#include int main(int argc, char **ar**)
error : assignment for read-only variable 'b'
const int b; b = 10;
error : assignment for read-only variable '*pa'
*pa = a;
error : assignment for read-only variable 'pb'
pb = &a;
const 型別限定符
1.以const關鍵字宣告的物件,其值不能通過賦值或遞增 遞減來修改。例 const int a 限定a的值不能被修改 a 12 不允許 2.在指標中使用const const float pf pf指向乙個float型別的const,建立了pf指向的值不能更改 float const pt pt是...
關於const 限定符
很多引用自c primer一書 比如有時候需要將乙個文字中的資料複製到另外乙個文字。我們需要使用緩衝區,緩衝區的大寫我們可以自己來決定比如1024個位元組,這是乙個常量,我們使用bufsize 1024.但是bufersize物件本身是乙個變數。所以我們可以引入const限定符,它將乙個物件轉化為常...
異常,const限定符
異常 1.掌握語句 throw 用於丟擲異常資訊,交出 控制權,一旦丟擲資訊,被catch子句捕獲到異常資訊,的控制權就轉移到對應的子句上了。丟擲多種資料型別。catch捕獲 try 這個語句上執行可能出現異常的 塊,如果有異常,可以搭配throw語句。catch 捕獲異常,搭配try語句使用。in...