一、写法
const int *a 和 int const* a 表示的意思一样,都表示一个指向const int类型的指针
语句错误案例
……
const int num = 520;
int *p = #
……
在赋值、初始化或参数传参的过程中,赋值号左边的类型应该比右边的类型限定更为严格,或至少是同样严格。在这里,使用指针 p,就可能间接地绕过 const 设定的防线。比如你可以通过指针改变num的值。编译器只能提出警告,不会报错。
在对void指针进行解引用之前,应该先进行强制转换类型,因为void*只保存地址,不记录跨度,如下:
...
int num = 111;
void *p;
p = #
printf("%d\n",*(int*)p);
特别提示
const始终限制紧随的那个标识符!!!
const int num = 520;
const int * const p = #
const int * const *q = &p;
//其中const限制的是*q和**q