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万+

GD32F303片内FLASH实战:从地址映射到数据持久化存储

本文详细介绍了GD32F303片内FLASH的实战应用,从地址映射到数据持久化存储的全过程。通过解析FLASH的基础特性、安全操作区域规划、擦除写入读取的三重奏操作,以及工程化进阶技巧,帮助开发者高效利用片内FLASH进行数据存储。文章还提供了调试技巧和常见问题解决方案,特别适合嵌入式开发者在实际项目中应用。

weixin_26742753的博客 216

const 详解

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

努力进阶的小菜鸟 1万+

小曾WRF自学日记(3)渐入佳境 ——WRF实例-数据下载与WPS前处理

ww

weixin_46297571的博客 1480

GD32F470 DSP库移植避坑指南:从CMSIS版本冲突到AC6工程配置

本文详细解析了在GD32F470平台上移植CMSIS-DSP库的完整流程与关键避坑点。针对CMSIS版本冲突、AC6编译器下的浮点ABI配置、DSP库源文件添加等核心难题,提供了经过验证的解决方案,帮助开发者高效完成移植,确保硬件FPU正常工作并优化性能。

data3的博客 530

『C语言进阶』const详解

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

Aron的博客 3608

双重机器学习 stata教程 手把手教学

双重机器学习(DDML)的stata教程

weixin_59030591的博客 1万+

C/C++ const详解

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

L24986721的博客 115

【考试大纲】中级多媒体应用设计师考试大纲

中级多媒体应用设计师考试大纲

邓邓子的博客 382

MoCap 动作捕捉开源库教程

数据通过 tf2 和支持不同 QoS 设置的 /poses 主题直接发布。该软件包最初是为 Crazyswarm 开发的,用于跟踪多达 50 个飞行机器人。

机器人控制与仿真应用 1307

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万+

【ATC/DTC方法第四期】GOT09-dT-tao 昼夜温度周期模型方法介绍(含Python代码实现)

GOT09-dT-tao 模型是一种经过简化和参数固定的 昼夜温度周期模型(Diurnal Temperature Cycle, DTC)。它从 GOT09 模型(Göttsche and Olesen, 2009)衍生而来,但更加轻量化,更适合在数据不足或参数估计困难的情境下使用。

WW、forever的博客 146

C语言 关键字const的作用

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

WhiteShirtI的博客 1万+

电磁场仿真软件:Sonnet_(1).Sonnet软件概述

根据特定需求自定义仿真流程,如多频率点仿真、多边界条件仿真等。

kkchenjj的博客 1450

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

c语言中 const 的作用

const 详细版

gaoaodefish的博客 1922

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C语言中const关键字的作用

C语言中const关键字的作用

weixin_69283129的博客 3124

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

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、付费专栏及课程。

余额充值