const修饰指针时可以放在 * 的左边也可以放在 * 的右边
二者作用不一样
const 放在 * 的左边
const 放在 * 的左边限制的是*p
#include <stdio.h>
int main()
{
const int a = 10;
int const * p = &a;
//const int* p =&a;
//限制的是*p
*p = 0;
printf("%d\n", a);
return 0;
}
const int *p =int const *p
此处的*p是无法被修改的(即不能通过p来修改p指向的空间的内容)
const 放在 * 的右边
#include <stdio.h>
int main()
{
const int a = 10;
int * const p = &a;
//const限制的是p
*p = 0;
printf("%d\n", a);
return 0;
}
此处的p是无法修改的(即不能在指向其他的变量)
关于指针p的理解
- p里存放的是地址(a的地址)
- p是变量,有自己的地址
- *p是p指向的空间