码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【C++】之const


    目录

    一.C/C++中const的区别

    1.C中的const

    2.C++中的const

    二.const/#define的区别

    1.区别

    2.const的优点


    一.C/C++中const的区别

    1.C中的const

    本质

    用const修饰的是常变量,本质上仍然还是变量,只是具有常性(即不可修改),既然本质是变量,就会给其分配相应的空间

    特性

    1).const修饰的常变量具有常性不可被修改

    2).由于本质上仍然还是变量,所以不能作为数组方括号内的数字

    3).可以通过指针间接修改

    4).在编译过程中,与变量拥有一样的处理方式 ,会有类型检查

    5).在定义时不初始化并不会报错

    2.C++中的const

    本质

    用const修饰的是常量,本质上就是常量,具有常性,不会为其在内存上分配空间,而是存在于符号表中,但由于C++具有兼容C的特性,所以在extern或者取地址(&)操作时,才会在内存上给其分配空间,但不会使用其存储空间的值

    特性

    1).本质就是常量,可以在数组方括号内使用

    2).作为左值不可被修改

    3).完全可以代替#define定义的宏常量,但不可以代替宏函数(宏函数在C++中由inline代替)

    4).在定义时必须被初始化

    5).会退化成常变量(当用变量来初始化const修饰的常量时,该常量会退化变为常变量)

    6).在使用时,是在编译阶段以符号表中的值进行替换(有类型检查),并不会使用空间内的值

     7).无法通过指针或者引用间接修改

    二.const/#define的区别

    1.区别

    const常量在编译阶段替换;宏常量在预处理阶段替换

    const常量有类型检查;宏常量没有类型检查

    const常量在整个进程运行期间只拷贝一次(常量的值在符号表中);宏常量不会拷贝,在预处理阶段就已经全部替换了

    const常量可以调试;宏常量只是简单的字面替换不可以调试

    2.const的优点

    在C++中,完全可以并且推荐用const代替宏常量

    const常量有类型检查,方便调试,节省空间,提升效率(没有不必要的内存分配),在整个进程运行期间只拷贝一次

  • 相关阅读:
    【2022社招】我的第一个社招面经
    [附源码]计算机毕业设计JAVA基于Java的快递驿站管理系统
    锅总浅析Prometheus 设计
    YOLO算法改进5【中阶改进篇】:添加SENet注意力机制
    CodeForces每日好题10.14
    【黑马-SpringCloud技术栈】【04】Nacos注册中心
    项目计划要趁早
    python matplot画图攻略
    C++之迭代器(Iterator)模式
    [MICROSAR Adaptive] --- Execution Management
  • 原文地址:https://blog.csdn.net/Hello_World_213/article/details/126595895
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号