请选择 进入手机版 | 继续访问电脑版

C++ const如何用?

[复制链接]
小甜心 发表于 2021-1-1 18:31:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
翻阅了不少资料,对于const 的用法一直是一个狐疑,不外最后也是搞懂了,两个字概括,const是”只读“;
  首先清楚一下const 的使用规则:
1.const修饰的变量不能作为左值,而且初始化之后只可读,不可写;
2.在c语言中const修饰的变量可以不初始化,所以他不配成为只读量也就是常量,叫做常变量;
C和C++中对于const关键字是有一定的区别的,区别在两种语言在编译时对const 的处置惩罚是不一样的,在C中,const关键字是当作一个变量来编译生成指令的,而在C++中呢,所有的const常量名出现的地方都会被const修饰的常量初始化值替换;
单拿出来const使用的话实在很容易就可以明确,难就难在C/C++有一个指针,指针联合const使用的话是比较难明确的。但是当你读懂上面的话后,你就会以为不外如此;最关键的两个字就是口诀:只读,能帮你应付大部分的疑难;
const与指针联合的常见几种形式如下:
  1. const int *p;int const *p;int *const p;const int * const p;
复制代码
看着是不是晕乎乎的,没关系,代码要一步一步分析:
  此个const修饰的是一个int范例,所以const是作用在*p上的,也就是说这个指针p指向的内存的值是只读的,无法写;换个说法就是指针p的指向是可以修改的,但是其指向的内存的值是无法修改的;
  再看第二个,const是修饰一个int范例,所以和上面的一样;
  再看第三个,const修饰的是一个int*,这就刚好和上面的反了,这个指针是被只读限制的,意味着他的指向是不能修改的,但他的指向的值是可以修改的;
  两个const,意味着双重保险,既不能修改这也不能修改那;
实在再加上二级指针,const 的用法也不会发生变化,这就意味着二级指针我们也能随心应当:
  1. int x = 1;int *p = &a;int **q = &p;const int **q;int * const *q;int ** const q;
复制代码
继承按照我们稳扎稳打的分析法来分析,这实在不难判断指针指向和指针的值可否修改的问题,就留给各人自己琢磨一下;

来源:https://blog.csdn.net/qq_42394290/article/details/112000520
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )