const位置不同 所对应的指针含义不同
一、常量
const int a = 0;
二、指针
1、指针指向地址中存储的值不能改变
int a = 0;
const int b = 2;
const int *q;
q = &a; //非const赋值给const
*q = 5; //报错,不能对指针指向地址存储的值进行修改
p = &b; //非const指针地址赋值
2、指针指向的地址不能改变,值可改变
int a = 1;
const int b = 0;
int * const p = &a; //报错 不能修改const指针指向的地址
int * p = &b; //报错 导致非const指针修改const的值
*p = 2; //可以修改指针指向的值
3、都不能修改
int a = 0;
const int * const p = &a;
三、函数
const int function(int){}
int function(const int){}
int function(int) const{}
总结
const位于*的左边对应的是p指针指向的空间中的值不能被改变( * p不能变)
const位于*的右边对应的是p指针指向的空间不能变(p不能变)
博客主要介绍了const位置不同时所对应的指针含义差异。包括常量、指针的不同情况,如指针指向地址中存储的值不能改变、指针指向的地址不能改变但值可改变、两者都不能修改,还涉及函数。总结指出const在*左边,*p不能变;在*右边,p不能变。
2709

被折叠的 条评论
为什么被折叠?



