常量指針

常量指針本質是指針,常量修飾它,表示這個指針是一個指向常量的指針(變數)。指針指向的對象是常量,那么這個對象不能被更改。 在C/C++中,常量指針是像這樣聲明的: 1)const int *p; 2)int const *p;

定義常量指針的語句格式為:const類型 * 變數 (或 類型 const * 變數)

如:

int i = 3;

int j = 5;

const int * p= &i;

則:

p = &j; /* 正確,p可以被重新賦值 */

*p = j; /* 錯誤,因為他改變的是p所指向的變數的值。*/

常量指針與指針常量

常量指針表示一個指針指向的變數為常量及帶有const屬性(e.x. const int *p) , 而指針常量表示一個指針本身為常量及指針本身帶有const屬性(e.x. int *const p), 常量指針指向的對象由於有const屬性, 無法直接改變, 但是指針本身值(及指針指向的記憶體地址)可以改變, 而指針常量則是指針本身有const屬性, 指針的值(及指針指向的記憶體地址)無法直接改變, 而該地址內的變數可以改變。

例子:

const char *p = "Hello, World"; //表示指針p是一個常量字元串的首地址, 指針p為常量指針

char a[20] = "Hello, World";

char *const p = a; //表示指針p本身為常量, 它將一直指向該記憶體區域直到它被釋放, 指針p為指針常量。(注意: 此時p的值雖然無法改變, 但是a的值可以改變。)

指針常量一般常用於當一個指針由始至終都指向一個對象時使用。


相關詞條

熱門詞條

聯絡我們