const 的定義
任何變量的聲明都可以使用const限定符限定。該限定符指定變量的值不能被修改。對數組而言,const限定符指定數組所有元素的值都不能被修改。
例如:
const double e = 2.71828182845905;
const char msg[] = "warning: ";
e = 3.14; // 非法
msg[0] = 'a'; // 非法
const 也常用來修飾指針,表示指向區域的內容不能修改,例如:
int arr[10] = {0};
const int* p_arr = arr;
arr[0] = 1; // 合法
p_arr[0] = 1; // 非法
常量指針 與 指針常量
常量指針,表示變量是指針,指向常量,即指針指向的內存區域不可被修改。
int arr[10] = {0};
int arr_2[10] = {0};
const int* p_arr = arr; // 聲明常量指針
arr[0] = 1; // 合法
p_arr[0] = 1; // 非法
p_arr = arr_2; // 合法
指針常量,表示變量是常量,變量本身的值不能被修改。
int arr[10] = {0};
int arr_2[10] = {0};
int * const p_arr = arr; // 聲明指針常量
arr[0] = 1; // 合法
p_arr[0] = 1; // 合法
p_arr = arr_2; // 非法