笔记:const与基本数据类型

来源:互联网 发布:nginx访问js报错403 编辑:程序博客网 时间:2024/05/23 18:34

const int *p=NULL;

int const *p=NULL; //两种完全等价


int *const p=NULL;//这就不一样了

int const a =3; int *p= &a; //错误
指针指向const修饰的变量时,应该是const int const *p=&a;

int x=3; const int *p=&x;
//p=&y; 正确
//*p=4; 错误
因为const修饰的的是*p,如果通过*p来重新赋值是错误的

int x=3; int *const p=&x;//p=&y; 这将是错误的
//*p=10; 但是*p是可修改的
因为const是在*的后面修饰的是p这个值所指向只能指向&x这一个地址

const int x =3; const int *const p=&x;
//p=&y; *p=4;都是错误的
不能通过p修改x本身的值也不能通过p指针指向其他的变量

const与引用

int x=3; const int &y =x;
//x=10;正确 //y=20;错误

const int x=3;   int *y = &x; //错误
//相当于用一个权限大的指针来接收一个权限小的变量,存在风险,所以错误
int x=3;  const int *y =&x; //这是对的

//相当于用一个权限小指针的来接受一个权限大的变量,这是允许的


阅读全文
0 0