const定義常變數後,該變數沒有寫許可權,只有讀許可權
①const用於定義常變數時,要進行初始化
例如:const int a=10; //合法
而const int a; //非法
②資料型別對於const而言是透明的
例如:const int a=10;
等價於 int const a=10;
const int
*p1=&a;
等價於int const*p1
=&a;
但不等價於
int *
const p1=&a;
③const用於封鎖直接修飾的內容,該內容變為唯讀,該變數不能作為左值(左值:放在賦值號『=』的左邊,使用變數的寫許可權)
例如:1)const int a=10;//const封鎖a
a=100; //a作為左值,使用a的寫許可權,非法
int b=a; //使用a的讀許可權,合法
2)const int*p1=&a; //const修飾*p1,將p1作為左值合法,將*p1作為左值非法
例:p1=&b; //使用p1做左值,合法
*p1=200;//使用*p1做左值,非法
3)int * constp2=&a; //const修飾p2,將p2作為左值非法,將*p2作為左值合法
例:p2=&b;//使用p2做左值,非法
*p2=100;//使用*p2做左值,合法
4)const int * const p3=&a;//const分別修飾*p3,p3,將*p3,p2作為左值都非法
例:p3=&b;//使用p3做左值,非法
*p3=100;//使用*p3做左值,非法
④許可權只能同等傳遞或者縮小傳遞
練習:
int a = 10;
int b = 20;
const int ca = 10;
const int cb = 20;
int *p = &a; //ok
p = &ca; //error
const int *cp1 = &a; //ok
cp1 = &b; //ok
cp1 = &ca; //ok
const int *cp2 = &ca;//ok
int *const cp3 = &a; //ok
int *const cp4 = &ca;//error
const int *const cp5 = &a;//ok
const int *const cp6 = &ca;//ok
const的基本用法
我們經常在程式語言中見到或使用到const,大家都知道const是定義常變數的意思,但是它是如何進行定義的,又有哪些使用規則呢。下面我和大家一起來了解了解。在了解const之前,我們先來了解一下左值這個東西,左值 就是放在賦值符號左邊的值,它為具有寫許可權,就是說我們可以通過賦值符號來改變它的值。1...
const的基本用法
const的基本用法 flyfish 2009 2 19 1常量const在編譯器中遇到的問題 下面的這個 在預設設定的dev c 5中編譯通過只是出現警告,沒有錯誤產生 include int main 不允許更改常量指標,p只能指向n,p的指向是不允許更改的 3 作為函式引數傳遞 僅當函式不改變...
3 const 基本用法
includeusing namespace std brief main return 1 常量指標 表示這個指標是乙個指向常量的指標 變數 指標指向的物件是常量,那麼這個物件不能被更改。const int c m 或者 int const c m 2 指標常量 指標變數不可以修改,但是它指向的記...