C语言 基础知识之const(const是什么,const的作用,const的使用)

C语言const用法详解 const用法详解 阅读详情
AI摘要

本文详细阐述了const在C/C++编程中的作用,包括常量变量声明、引用和指针的应用,以及如何正确地在多文件间共享const变量。通过实例讲解,展示了const如何提升代码安全性与效率。

一、const是什么

    const是C/C++中的类型修饰符。

二、const的作用

    1、对变量声明只读特性,保护变量值以防被修改。

    2、节省空间,避免不必要的内存分配。const修饰的变量在程序运行过程中只有一份拷贝。

    3、提高程序运行效率。编译器不为普通const常量分配存储空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储和读取内存的操作。

三、const的使用

    1、const和普通变量

       (1)编译器在编译过程中把用到const变量的地方都替换成对应的值。为了执行这个操作,编译器必须知道const变量的初始值, 如果程序包含多个文件,则每个用了该const变量的文件,都必须能访问到它的初始值才行,要做到这一点,就必须在每一个用到该const变量的文件中都有对它的定义或声明。   

                默认状态下,const变量仅在文件内有效,当多个文件中出现了同名的const变量时,等同于在不同文件中分别定义了独立的const变量

                定义一个const变量

        const type value_name = value;

       (2)对于有必要在文件间共享的const变量,在const变量定义和声明时添加extern关键字即可。

                例如:

                在test_extern_const.cpp中定义并初始化一个可被外部访问的const变量

        extern const int test_extern_const = 0;

                在test_extern_const.h中声明变量extern_const_test和函数print_test_extern_const_value

        #ifndef _TEST_EXTERN_CONST_H
        #define _TEST_EXTERN_CONST_H

        extern const int test_extern_const;

        #endif

                  在main.cpp中使用变量test_extern_const

        #include <iostream>
        #include "test_extern_const.h"
        using namespace std;

        int main() {
            cout<<"test_extern_const value is "<<test_extern_const<<endl;
            return 0;
        }

            从main的运行结果可以看到,const变量test_extern_const被外部文件成功访问

                     

    2、const和引用

               把引用绑定到const变量上,称为对常量的引用。与普通引用不同的是,对常量的引用不能修改它绑定的变量的值。

               常量引用仅对引用可参与的操作做出了限定,对于引用的变量本身是不是一个常量未做限定。

        const int test_const = 0;
        const int &reference_to_const = test_const;

    3、const和指针

        (1)指向常量的指针

                 指向常量的指针没有规定其所指向的变量必须是一个常量。指向常量的指针仅仅要求不能通过该指针改变变量的值。

        const double value_name_1 = value;
        const double *pointer_to_const_1 = &value_name_1;

        double value_name_2 = value;
        const double *pointer_to_const_2 = &value_name_2; 

        (2)常量指针

                 指针本身为常量,常量指针必须初始化,一旦初始化完成,它的值就不能再改变了。即不变的是指针本身的值而非指向的那个值。

        int value_name = value;
        int *const const_pointer = &value_name;

C语言 const、static、volatile等关键字的作用 本文简单介绍了const、volatile等关键字的作用。 阅读详情

相关推荐

【C语言】const 关键字详解

我们展示了如何定义常量、如何使用const修饰指针以及如何将const用于函数参数。通过这些用法,const可以帮助我们编写更安全、更稳定的代码。

LuckiBit 2899

C语言中const关键字的用法

关键字const用来定义常量,如果一个变量被const修饰,那么它的值就不能再被改变,我想一定有人有这样的疑问,C语言中不是有#define吗,干嘛还要用const呢,我想事物的存在一定有它自己的道理,所以说const的存在一定有它的合理性,与预编译指令相比,const修饰符有以下的优点: 1、预编译指令只是对值进行简单的替换,不能进行类型检查 2、可以保护被修饰的东西,防止意外修改,增强程序

xingjiarong的专栏 31万+

关于LIO-SAM编译时出现错误 /usr/bin/ld: 找不到 -lBoost::timer

关于LIO-SAM编译时出现错误: 下载LIO-SAM代码 进入LIO-SAM文件夹,通过以下代码编译: mkdir build cd build cmake .. make 报错: /usr/bin/ld: 找不到 -lBoost::timer collect2: error: ld returned 1 exit status CMakeFiles/lio_sam_imuPreintegration.dir/build.make:759: recipe for target 'devel/lib/li

wwtx的博客 3648

const 详解

一、 const: 关键字,限定一个变量不可被修改 二、const的使用 2.1 定义const变量:初始化完成后,值不可被修改 2.2 const和指针 常量指针:不能通过指针修改指针所指向的变量的值。但是指针可以指向别的变量。 指向常量的指针(指针常量):指针常量的值不能被修改,即不能存一个新的地址,不能指向别的变量。但是可以通过指针修改它所指向的变量的值。 2....

努力进阶的小菜鸟 1万+

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

从音频录制到智能手表:Sigma-Delta ADC是如何在低功耗场景下‘欺骗’噪声的?

本文深入解析Sigma-Delta ADC在智能穿戴设备中的低功耗高精度实现原理,重点介绍其通过过采样和噪声整形技术‘欺骗’噪声的独特方法。以TWS耳机和医疗级健康监测为例,展示该技术如何在有限功耗预算下实现专业级信号采集,为消费电子设计提供关键解决方案。

weixin_30825581的博客 389

『C语言进阶』const详解

常类型,使用类型修饰符const说明的类型,常类型的变量或者对象的值是不能被更新的。const含义:只要一个变量前用const来修饰,就意味着该变量里的数据只能被访问,而不能被修改,也就是意味着“只读”(readonly)

Aron的博客 3608

NVIDIA DGX Spark (Ubuntu 24.04) 部署Isaac Sim与Isaac Lab:二进制安装与ROS2集成实战

本文详细介绍了在NVIDIA DGX Spark工作站(Ubuntu 24.04系统)上,通过预编译二进制包稳定部署Isaac Sim与Isaac Lab的完整实战流程。文章重点剖析了二进制安装相较于源码编译和pip安装的优势,有效规避了CUDA、PyTorch等关键组件的版本冲突陷阱,并逐步指导完成环境配置、Isaac Lab集成、Conda环境管理以及ROS2 Jazzy的集成,最终构建出完整的机器人仿真与强化学习开发平台。

kite3的博客 396

C/C++ const详解

1. 什么是const 1.1const基础知识 const是C语言关键字之一,它先定了一个变量为只读变量(即变量的值不能被修改)。 const通常作为符号常量出现,能够增加代码的可维护性。 例如我们可以定义某一类元素个数固定的数组的大小为const size = 10; 1.2. const主要有如下几类应用 常变量 const <类型...

L24986721的博客 115

CPU进程调度算法【FCFS、SJF、优先级、RR、多级队列、多级反馈队列调度】

目录 一、先到先服务调度: 二、最短作业优先调度: 三、优先级调度: 四、轮转调度: 五、多级队列调度: 六、多级反馈队列调度: CPU调度算法处理的问题是:从就绪队列中选择进程以便为其分配CPU。 一、先到先服务调度: First Come,First Served(FCFS) 定义:先请求CPU的进程首先分配到CPU。FCFS策略可以通过FIFO队列轻松实现。 护航效果:其他所有进程会等待一个大进程释放CPU 非抢占式:一旦CPU分配给了一个进程,该进程就会使用CPU知道释.

马小超 3921

GPT-5.5 是真好用!SCI论文润色与学术写作能力上全面提升,全流程指令已整理好!

输出规范:先输出完整的摘要正文,不添加额外说明,以Markdown表格形式提供中文自检说明,表格包含两列,列标题为“检查项”和“说明”,逐项说明是否已覆盖背景、研究问题、方法、结果及贡献,并简要评价摘要结构与表达是否符合要求,除上述内容外不输出其他信息。:你是一位(学术写作专家/期刊审稿人/论文评审专家),精通学术写作规范、逻辑结构、语法准确性及学术表达方式,你的任务是帮助提升论文的质量,包括语言润色、语法检查、逻辑优化和降低重复率。语言需简洁、正式、具有概括性,不展开具体论述,仅提供结构与要点说明。

智能AI让学术科研更容易 289

C语言常量 变量与作用域

变量与常量一、常量与符号常量constdefine二.变量与变量定义命名规则1.变量定义语句2.变量赋初值typedef 一、常量与符号常量 整型常量 以下是合法的整型常量表示形式: 256,-75,0(十进制整型常量) 0237,045,0621(八进制整型常量,用数字0作前导) 0x28AF,0xED4(十六进制整型常量,用数字0与x作前导)435L,350L(长整型常量) 不合法的整型常量举例如下: 096(9非八进制数码) 48EA(十六进制数缺前导字符0x) 0xK(K非十六进制计数字符)

qq_51163115的博客 3万+

Python爬虫实战:深度解析携程/飞猪酒店评论API与大数据采集

本文详细介绍了如何通过Python爬虫技术获取携程和飞猪平台的酒店评论数据。我们涵盖了从API分析、反爬虫对策到数据存储和处理的完整流程。API逆向分析:通过浏览器开发者工具发现和分析API接口反爬虫对策:使用请求头随机化、IP代理、浏览器自动化等技术异步处理:使用asyncio提高爬取效率数据质量:实现数据清洗和质量检查机制系统架构:构建可扩展的分布式爬虫系统未来改进方向:机器学习识别验证码分布式爬虫架构实时数据流处理更智能的反反爬虫策略。

2201_76125261的博客 601

C语言 关键字const的作用

关键词解释 const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。 定义 const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。 主要作用 1、可以定义const常量,具有不可变性 2、便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int

WhiteShirtI的博客 1万+

文末含资料链接和视频讲解!YOLOv8集成CoordAtt注意力机制详细教程

本文详细介绍了如何在YOLOv8目标检测框架中集成CoordAtt注意力机制。首先解析了CoordAtt的工作原理,它通过分解式池化将位置信息嵌入到通道注意力中,相比传统注意力机制具有更好的空间信息保持能力。然后提供了PyTorch实现代码解析,包括自适应平均池化、Hard-Swish激活函数等关键实现细节。最后概述了YOLOv8架构,为后续集成CoordAtt提供基础。该教程适合具备深度学习基础的开发者,将理论与实践结合,帮助读者掌握这一目标检测优化技术。

FJN110的博客 266

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

c语言中 const 的作用

const 详细版

gaoaodefish的博客 1922

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C语言中const关键字的作用

C语言中const关键字的作用

weixin_69283129的博客 3124

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

C语言关于const的爱恨情仇-const关键字的作用

在C语言中,const总是时常混迹于各处,让初学者很是头疼,今天我们的主要内容,就是讲const在C语言的作用,讲一讲const的爱情故事,着急的朋友可以直接看完结部分。const 中文释义:不变的,恒定的。著名的物理学家爱因斯坦曾经说过,运动是绝对的静止是相对的,const表示没有人比我更懂这点。

qq_74078075的博客 2024

c语言 const常量作用,C语言 const常量讲解

//const的本质//const本质上是伪常量,无法用于数组初始化以及全局变量初始化//原因在于const仅仅限定变量无法直接赋值,但是却可以通过指针间接赋值//例如局部常量在栈区,而不在静态区(静态区会一直存在),也不在代码区(代码区只读,禁止修改)#include#include//const与define的区别#define X 10.0const int Y = 9.0;//赋值时会自动...

weixin_31156945的博客 5387

解释 C 语言中的 const 关键字的作用

使用const可以定义一个值在程序运行期间不能被修改的常量。在上述示例中,MAX_VALUE被定义为一个整型常量,其值为100,在程序的任何地方都不能再对其进行修改。在 C 语言中,除了使用const来定义常量,还可以使用宏定义。100宏定义在预处理阶段进行简单的文本替换,而const定义的常量在编译阶段有类型检查。宏定义没有类型信息,可能会导致一些潜在的问题。例如,如果将宏定义用于表达式中,可能会因为意外的类型转换导致错误。而const常量具有明确的类型,编译器可以进行更严格的类型检查。

2401_86074221的博客 1412

深入探究 C 语言中 static 与 const 关键字的作用

static和const关键字在 C 语言中各自有着独特而重要的作用。static主要用于控制变量和函数的存储方式、生命周期以及作用域,有助于实现程序的模块化和封装性;而const则专注于保证数据的常量性,提高程序的安全性和可读性。熟练掌握这两个关键字的使用,能够使我们编写出更加健壮、高效且易于维护的 C 语言程序。希望通过本文对static和const关键字作用的详细阐述,能帮助读者在 C 语言编程中更加准确地运用它们。如果对这两个关键字还有其他疑问或见解,欢迎在评论区留言交流。

AC的博客 1053

c语言const作用域,C/C++:Const总结

指针变量和它所指向的内存空间是两个不同的概念由于Const在C和C++中存在差异,本篇将会对Const在两种语言的表现异同点上进行对比探讨。实现方式不同在C语言中,Const修饰的变量只是告诉编译器该变量是一个只读的变量,不能通过该变量改写器内存空间中的值,但是其本质上还是一个变量,既然是变量,就会有内存地址,因此可以通过指针间接修改该地址空间的值。const int a = 10;int* p ...

weixin_39610774的博客 952

c语言中的const的作用及解析

转载:http://www.cnblogs.com/zhangjiansheng/p/6527708.html 简介: 有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。为了满足这一要求,可以使用const关键字对变量加以限定: const int MaxNum = 100; //班级的最大人数 这样 Ma...

Do 2164

c语言数组前const的作用,C语言的const使用方法

C语言的const使用方法C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。以下是小编为大家搜索整理的C语言的const使用方法,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。const的使用是c语言中一个比较微...

weixin_39566882的博客 1026

c语言中const的修饰作用

c语言中const的作用以及注意事项

m0_74234485的博客 1571

C语言 CONST修饰符详解

C语言中的CONST修饰符用于声明常量,其值不可修改,可提高代码安全性和可读性。CONST可修饰普通变量、指针(根据位置不同限制内容或指针本身)、函数参数和返回值。在指针使用中,const char和char const完全等价,但前者更常见。随着C标准演进(C89/C90到C11),CONST功能不断完善。最佳实践包括合理使用CONST、保持代码风格一致,并注意与#define的区别(CONST类型安全且有内存分配)。尽管可通过指针强制转换绕过CONST限制,但应避免这种危险操作。

狂奔的鸵鸟 1080
上一篇: L2TP协议笔记
下一篇: C语言 基础知识之static(static是什么,static的好处,static的使用和作用)
李江林
博客等级 码龄9年 50粉丝 31原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值