c 指標中const的用法總結

2021-10-01 02:47:25 字數 1202 閱讀 9586

#include using namespace std;

int main()

{ int b1=1,b2=2,b3=3,b4=4,b5=5;

int c = 100;

const int cc = 1000;

int *p;

const int *a1 = &b1; //const修飾a指向的物件b,a可變,a指向的物件b不可變

int const *a2 = &b2; //同上

int * const a3 = &b3; //const修飾指標a,a不可變,a指向的物件b可變。

const int * const a4 = &b4; //指標a和a指向的物件b都不可變

int const * const a5 = &b5; //同上

/*int * const a3;// = &b3; //const修飾指標a,a不可變,a指向的物件b可變。

const int * const a4;// = &b4; //指標a和a指向的物件b都不可變

int const * const a5;// = &b5; //同上

a3 = &b3; //const修飾指標a,a不可變,a指向的物件b可變。

a4 = &b4; //指標a和a指向的物件b都不可變

a5 = &b5; //同上

*//*

cout<<"樣例1: +++++++++++++++++++修改指標+++++++++++++++++++"1. const與*的相對位置是十分關鍵的,而與資料型別(比如int)的相對位置無關。

2. const靠近(在*右側)指標變數,則指標變數為唯讀指標,即指標的指向不可改變。

3. const遠離(在*的左側),則指標變數為指向唯讀變數的指標,即該指標可以唯讀變數。

4. 樣例1,3的結果發現:a3,a4,a5是唯讀指標,即他們的指向是不可改變的,只能在定義時就要賦值,而且必須在定義時進行初始化,不然就會編譯出錯。

5. 樣例3中對比指標p與指標a1,a2,我們發現,普通指標p是不能指向唯讀變數cc的,這就是a1,a2這一類指標的應用場景。

6. 樣例2,4的結果發現,const*的指標指向的變數可以自己改變值,但不能通過指標進行修改變數的值。

6. 樣例2的結果,我們發現,可以把帶const的指標視作一種高階指標,可以用它們指向普通變數。

*/

C 中const用法總結

c 中用法總結 1.1.1.定義普通常量 使用 define來定義常量也是常用方法,但const也可以用來定義常量,在 effective c 中建議使用const代替 define來定義常量,因為const定義的常量具有型別資訊,而巨集沒有,所以使用const定義的常量在進行賦值操作時編譯器會進行...

C 中const用法總結

1.const 常量,如 const int max 100 優點 const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查,而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換時可能會產生意料不到的錯誤。2.const 修飾類的資料成員。const 資料成員只在某個...

c 中const用法總結

const關鍵字在c 中的用法很普遍,總結了一下,大致有這些用法。1.阻止乙個變數被改變,使用const修飾,變數成為常量,因為以後不能修改它,所以定義時必須初始化。比如const int number 512。這和c語言中巨集有點類似,都是定義常量的,但是它們也有不同之處 巨集只是做簡單的字元替換...