const型變量和const型指針


 const型變量和const型指針

 const型變量

如果在程序中需要經常使用某一常量,可以使用編譯預處理命令定義符號常量。

eg:#define PI 3.14159

const型變量也是一種定義常量的手段。const型變量是特殊的變量,程序運行過程中不可改變,其他特性和變量一樣。定義const變量時必須初始化。

eg:

const int Max=1000; //int和const位置可以交換。

const常量與符號常量的區別:

1)符號常量由預編譯器處理,const型變量由變量處理。

2)在編譯時符號常量已經不存在了,而const常量依然存在。

3)符號常量的作用域從定義位置開始,到源文件結束,而const型變量和一般變量一樣。

const型指針

1)指向常量的指針

關鍵字const 在最前面。它既可以指向常量,也可以指向變量,但是不能通過它修改它所指向的量。(指針可變,其所指向的內容不可變)

定義格式:const <數據類型> * <指針變量名>;

eg:

const int * p;

const int a=15;

int b;

p=&a;  //合法,p指向常量

p=&b;    //合法,p指向變量

*p=14;  //不合法,不能通過p間接地修改它所指向的量

2)指針常量

關鍵字在指針變量名之前。這種指針,不能改變指針的指向,即指針本身是常量,不允許重新賦值。必須在定義時初始化。(指針不可變,其所指向的內容可變)定義格式:<數據類型> * const <指針變量名>;

eg:

int a,b;

int * const p=&a;              //必須初始化

*p=15;  //合法,可以通過p間接訪問變量a,給其賦值。

b=*p;   //合法,可以取出p所指向的值

p=&b;   //不合法,不可以給p重新賦值

3)指向常量的指針常量

定義格式有兩個const。不能通過該指針改變它所指向的量,也不能指針本身指向。

eg:

int a,b;

const int * const p=&a;  //初始化

*p=15;   //不合法,不能通過p改變它所指向的量

p=&b;    //不合法,不可以給p重新賦值

b=*p;     //合法,取出p指向的量。

a=8;       //合法,a是獨立的,其自身操作特性不受影響

4)快速判斷const指針——看const 的位置。

const int *p;  //常量指針,const在int前面

int * const p=&b;       //指針常量,const在p前面


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM