1 不允许非常量指针指向常亮
//'initializing': cannot convert from 'const int *' to 'int *'
int main()
{
const int a = 3;
int *p = &a;
*p = 4;
return 0;
}
2 常量指针
//正确写法
int main()
{
int a = 3;
int *p = &a;
(*p)++;
cout << *p << endl;
return 0;
}
//错误写法
//常量指针,指针数值不允许修改
// 'p': you cannot assign to a variable that is const
int main()
{
int a = 3;
const int *p = &a;
(*p)++;
cout << *p << endl;
return 0;
}
//'p': you cannot assign to a variable that is const
int main()
{
int a = 3;
int const *p = &a;
(*p)++;
cout << *p << endl;
return 0;
}
3 指针常量
//正确写法
int main()
{
int a = 3;
int* const p = &a;
(*p)++;
cout << *p << endl;
while (1) {};
return 0;
}
//错误写法
// 'p': you cannot assign to a variable that is const
// p指向的地址不允许发生偏移
int main()
{
int a = 3;
int* const p = &a;
*(p++);
cout << *p << endl;
while (1) {};
return 0;
}