定义只读变量:const

本文详细探讨了C++中const关键字的使用,特别是在修饰指针变量时的三种效果。const用于定义只读变量,其生命周期涵盖程序的整个运行过程。const变量存储在内存的只读数据段中,提供了类型安全和编译时检查。通过const,我们可以限制指针所指向的内存内容、指针本身的地址或者两者都不可变,以此来确保数据的恒定不变性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const 表示恒定不变的数据,用于定义只读变量的关键字。

const int a = 10;
int const a = 10;

用const关键字,无论是全局变量,还是局部变量,生命周期都是程序运行的整个过程,全局变量的生命周期为程序运行的整个过程。我们知道全局变量是静态的,而使用了const的局部变量只是有了静态的特性,并没有说他就是静态变量了,我们知道,局部变量存储在栈中,静态变量存储在静态存储区中,而经过const修饰的变量存储在内存中的“只读数据段”中,只读数据段中存放的常量和只读变量等不可改变的量

1 define 是预编译指令,而const是定义变量的。define定义的宏是预处理阶段展开的,而const定义的只读变量是在编译运行阶段的。

2 const 定义的是变量,而define定义的是常量。define定义的宏在编译后就不存在了,他不占用内存,因为他不是变量,系统只会给他分配内存。但是const定义的常量本质上是一个变量,具有变量的基本属性,有类型,占用内存单元。可以说,常变量是有名字的不变量。而常量是没有名字的。有名字就存在引用,所以从使用角度看,除了不能作为数组的长度,用const定义的变量具有宏的优点,而且使用更加方便。所以编程时使用const和define都可以的情况下,建议使用define。

3 const定义的是变量,而宏定义的是常量,所以const 定义的对象有数据类型,而宏定义的的对象没有数据类型,所以编译器可以对前者进行检查,而对后者只是机械的进行字符替换,没有类型安全检查。

用 const 修饰指针变量的三种效果

1
博客
v8worker
05-08 2958
05-06 2941
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值