筆者對const 的認知,就是 const double PI = 3.14;
宣告常數,數學中有很多常數,這是很基礎的用法 。
本書的作者,給了一個例子:
void set_elmt(int *a, int const *b){
a[0] = 3;
}
int main(){
int a[10] = {};
int const *b = a;
set_elmt(a, b);
printf("%d \n",(int*)b);
}
這個const *b 的值可以被改變的。有點困惑了!!
作者列出了六種常見的const用法
由右往左閱讀:
int const = a constant integer
int const * = a (variable) pointer to a constant integer
int * const = a constant pointer to a (variable) integer
int * const * = a pointer to a constant pointer(常數指標) to an integer
int const * * = a pointer to a pointer to a constant integer(常數)
int const *const * = a pointer to a constant pointer to a constant integer(常數)
int const 和const int 是一樣的。但const * 和* const 是不一樣的。