int *p; *p = 100; // 这样做是错误的,程序可能正常运行,但终会出错。因为p没有指向变量
int *p = 0;
*p = 10; // 也是错误的
// 下面这样做才是正确的 int a; int *p; p = &a; *p = 4;
int * const p = &i; *p = 26; // ok p++; // error
const int * p = &i; *p = 26; // error, *p是const,但是注意i的值并不是const i = 26; //ok p++; //ok p = &j;//ok
int i; const int * p1 = &i; // 不能通过*p1 修改i 变量的值 int const * p2 = &i; // 不能通过*p2 修改i 变量的值 int * const p3 = &i; // p3不能指向其他变量,只能指向i 如何判断的? const在* 前面表示不能通过*p 来修改变量的值 const 在* 后面表示指针p不能再指向其他变量
原文:https://www.cnblogs.com/bneglect/p/14642429.html