分享

C/C++【const int和int const】的区别-CSDN博客

 补丁牛仔裤 2024-09-20 发布于广东

修饰变量

//没有区别
const int p = 12; //p不能被修改
p = 42; //编译出错
int const q = 42; //q不能被修改
q = 12; //编译出错

修饰指针

const int a = 12;
const int b = 42;
const int c = 54;

const int *r = &a; //*r不能被修改
*r= b; //编译出错
int* const p = &b; //p不能被修改
p = &c; //编译出错
int const *q = &c; //*q不能被修改
*q = a; //编译出错

理解记忆

对于const我们可以使用“去除类型,就近原则”来理解,即const修饰的是去除类型后最靠近它的右边的那个变量(包含解引用符号*),即:
1、const int p和int const q去除类型后,都是 const var,所以这两者是等效的
2、const int *p和int const *q去除类型后,都是const *var,所以这两者也是等效的,即都是修饰的指针解引用,所以这两种情况是能修改指针变量的值,不能修改解引用本身,即不能对*p和*q进行赋值
3、int* const p,这个const跟变量中间没有类型,所以比较好理解,它修饰的就是p指针变量本身,所以这种情况是不能修改指针变量的值,但能对解引用进行赋值,即*p = var是合法的

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多