您的位置:首页 > 编程语言 > C语言/C++

【博客3】探究c++中的const

2019-04-11 20:51 543 查看

探究const的性质:
1.const可以定义常量(可以作为指定数组大小的常量,c中不可以):

2.对于全局const变量,不允许其他cpp文件访问:

测试代码:


测试结果:


结果:编译报错,无法解析a变量,const此时不允许被其他外部的文件所访问。
将const去掉后的结果:


结果:正确运行。
3.测试const修饰形参的意义:

  1. 当形参为值传递时,加不加const都无所谓,因为修改的是副本,并不会影响实参
  2. 当形参为引用或者指针时,如果不加const,除非你真的需要修改形参,否则你要加进去,避免非const变量的传不进来



4.测试对const进行“绕过”修改:

1.对局部const进行修改:

结论:我加volatile的原因是因为如果不加的话,那么编译器默认去寄存器读它的值,那么即使内存上的已经被修改,但是寄存器上的副本没有修改,看不到结果。同时也说明编译器会优化对一些常量的读取,比如:放到寄存器中

2.对局部const变量的修改:

结果:无法对全局const变量进行绕过修改,因为编译器对全局const变量应该已经提前写入符号表中,不允许修改了。

大三学生一枚,文章均非抄袭或者模仿,均为原创,仅代表个人观点,如果文章有错误的地方,欢迎在下方提出,每条评论我都会去认真看并回复,同时感谢指正的前辈。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: