二、指標常量
三、常量指標
const 為指定說明符(也稱為常型別說明符),使用指定時,程式執行的過程中指定的內容不能被改變(凍結、限定)。即一次初始化後,指定的內容始終不變。
定義一般常量
使用const 說明常量:int const x=2; 或const int x=2;
x++;(錯誤)
定義或說明乙個常陣列: double const a[2]=;
const double a[2]=;
常量定義時,應被初始化。 const int i;(錯誤)
c 中常量定義用#define pi 3.14159
c++中使用const double pi=3.1415;
積極使用const, 避免使用巨集,可以用const、enum定義常量。
注意:c中define巨集定義後沒有分號
在指標定義語句的指標名前加const, 表示指標本身是常量。
(示例):
int a;
int*
const p=
&a; 定義時必須初始化
指標值p不可以修改,指標指向的內容可以修改。
即p是常量,不可以作為左值進行運算,*p可以修改
(示例):
int a[10]
;int
*const p=a;
int b[6]
; p=b;
// 錯誤
*p=6
;// 正確
*(p+6)
=6;// 正確
*p++=7
;// 錯誤
const
int c=0
;int
*const q=&c; // 錯誤(不允許外界提供修改常量的漏洞)
常量指標:
在指標的定義型別前加const,表示指向的物件是常量。
如const int *p 或 int const *p; 均可。
以上定義表明,p是常量,不能將p作為左值進行操作。
定義指向常量的指標時,定義時不必須先初始化。
const
int a=78;
const
int b=28;
int c=18;
const
int*pi=
&a; pi=
&b;//ok
*pi=68;
//error
pi=&c;//ok
*pi=88;
//error
c=98
;//ok
int*f=
&a;// 錯誤(a本身不能被修改)
形式: const int const p=&a; 定義時必須初始化
p與p都是常量。他們都不能作為左值進行操作
int b[10]
;const
static
int a[
10]=
;int
*const pi=a;
// 錯誤
const
int*
const p=a; // 正確
const
int*
const q=b; //正確
p++; // 錯誤
*p=1; // 錯誤
*(a+2)
=2;// 錯誤
*q=5
;// 錯誤
q++;// 錯誤
b[0]
=5;// 正確
指標常量與常量指標
指標常量與常量指標 指標常量是指定義的指標只能在定義的時候初始化,之後不能改變其值,格式如下 資料型別 const 指標常量名稱 例項如下 1char constp1 2int constp2 const 位於指標宣告符 的右側,這說明宣告的物件是乙個常量,而物件的資料型別是指標。所以第一句定義了乙...
常量指標與指標常量
首先,我告訴大家乙個小規則,就是像這樣連著的兩個詞,前面的乙個通常是修飾部分,中心詞是後面乙個詞,怎麼說呢。就像這裡的常量指標和指標常量。常量指標,表述為 是常量的指標 它首先應該是乙個指標。指標常量,表述為 是指標的常量 它首先應該是乙個常量。我再分開細細說明,常量指標,它是乙個指標,什麼樣的指標...
常量指標與指標常量
在c c 面試中經常會考到常量指標和指標常量,對初學者來說經常會分不清楚,參考網路上的資料,重新學習 記錄一下。常量指標 指向常量的指標,即指向的內容為常量,不可更改,但指標自身的值可以修改。常量指標常量 指標指向的內容不可改變,指標本身的值也不能改變。int a 3 int b 4 const i...