C++中const关键字的多方面应用

const 的基本作用

const有且只有一种作用,那就是限定被修饰的对象无法被修改,在c++中,被const修饰的对象被看作常量,存储在只读存储区(.rodata)。

测试代码


const int a = 5;

char arr[a];

对测试代码进行汇编编译 – gcc -S test.c

在这里插入图片描述

const与指针

关于const与指针,我在指针一节中涉及到了,可以跳转下面的链接
2-17,18,19 – 关于指针

const限定

在很多函数中,我们用引用传递参数给目标函数做一些事,但是我们

并不希望目标函数去修改我们传递的这个值。

例如在字符串比较函数中

int strcmp(const char *str1, const char *str2);

既然只是做比较,那就不涉及修改参数的问题,但是为了避免,目标

函数出现修改参数的情况,加上const修饰参数就能避免如此问题。

链接性与作用域

链接性

在c++中由const修饰的变量默认是内部链接的,即只在本.c文件中可以被看到
在这里插入图片描述
如果想要使被修饰的变量具有外部链接性,就需要在外用extern修饰

而在c中,const修饰的变量默认是外部链接

同样的代码用c编译
在这里插入图片描述
可以看到用c编译的a是globl修饰的。

作用域

前文说过const修饰的变量存储被视为常量与常量一起存储在只读存储区
在只读存储区的内容不会随着函数结束而销毁,而是会一直保存到程序运行结束

注:诸位站友如有所收获不妨点个免费的赞,如有错误之处或有其它补充的点,请在评论区发表你的观点,看到必回。

相关推荐

  1. C++const关键深度探索与应用实践

    2024-07-23 09:48:01       25 阅读
  2. C++const关键多种用法

    2024-07-23 09:48:01       42 阅读
  3. C 语言 const 关键字详解

    2024-07-23 09:48:01       50 阅读
  4. C++关键字const

    2024-07-23 09:48:01       26 阅读
  5. C#“ref“关键使用

    2024-07-23 09:48:01       50 阅读
  6. C++const关键字详解

    2024-07-23 09:48:01       53 阅读
  7. PHPfor循环:多方面探讨与实际应用

    2024-07-23 09:48:01       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-23 09:48:01       106 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-23 09:48:01       116 阅读
  3. 在Django里面运行非项目文件

    2024-07-23 09:48:01       95 阅读
  4. Python语言-面向对象

    2024-07-23 09:48:01       103 阅读

热门阅读

  1. [算法题]删除相邻数字的最大分数

    2024-07-23 09:48:01       24 阅读
  2. 后端开发面试题6(附答案)

    2024-07-23 09:48:01       24 阅读
  3. 紫龙游戏服务器面试

    2024-07-23 09:48:01       24 阅读
  4. C#类型基础Part2-对象判等

    2024-07-23 09:48:01       23 阅读
  5. 量化机器人能否提高市场预测精度?

    2024-07-23 09:48:01       30 阅读
  6. ELK Stack入门之部署EFK架构

    2024-07-23 09:48:01       21 阅读
  7. uniapp刷新当前页面bug

    2024-07-23 09:48:01       25 阅读
  8. ArcGIS Pro SDK (九)几何 12 多面体

    2024-07-23 09:48:01       23 阅读
  9. 数据库连接池

    2024-07-23 09:48:01       27 阅读
  10. RKNN执行bash ./build-linux_RK3566_RK3568.sh 报错

    2024-07-23 09:48:01       25 阅读