int *const p和 int const *p 的区别

(1)对于int *const p;

const 限定的是p所指的对象,所以p指针所指的地址在这个情况下是不能改变的。

(2)对于 int const *p;

const限定的是*p,所以*p所指的值是不可以改变的,但是可以改变p所指的对象

(3)更多的列子如下:

const int const *x = &y:指针所指向的内存不可变,内存中的值也不能通过指针改变;
int * const x = &y:指针所指的内存不能改变,内存中的值可以改变
const int *x = &y:指针所指的内存可以改变,内存中的值不能改变
int const *x = &y:指针所指的内存可以改变,内存中的值不能改变
const int * const x = &y:指针所指的内存不能改变,内存中的值也不能改变。

你可能感兴趣的:(C语言,指针,webstorm,visual,studio)