#define,const,static三种常量的区别

C/C++中#define,const,static常量的区别解析
本文介绍了C/C++中定义常量的三种方式:#define,const和static,并详细阐述了它们之间的区别。#define实际上是预处理替换,不占用内存空间;static在编译时分配空间,作用域限制于文件或函数;const是真正的常量,不可修改,具有类型检查和内存分配。const比static更为严格,提供了更安全的常量修饰。
部署运行你感兴趣的模型镜像
#define,const,static三种常量的区别
定义常量常用的三种方法有:#define,const,static实际上还是有很大区别。
(1)#define是预定义定义常量,其实不是常量,因为,在程序中并没有给#define的字符量开辟变量空间。#define的用法是#define  dd  100;在程序预编译的时候讲程序中的所有的dd改为100;没有类型。没有空间存放。所以在程序中是不可以改变的。为什么呢?因为根本找不到存储地址(本身就没有空间地址)。




(2)static:为什么要先讲static呢?因为static比const先出现。static是c语言时出现的。const是c++语言时出现的。const的目的是static的加强版本。为什么说是加强版本呢。这是因为作为一个常量的修饰符,static并不是完全意义上的常量修饰符。



居然可以改变,说好的是常量呢,为什么可以改变。这里使用的是vs2015编译。当然通过指针也可以修改。
(3)const:绝对的常量修饰符。不可修改。见下



果然c++更严谨,修改失败。我们尝试使用指针修改。如下


果然,不能修改,指针也不行。确实更严格。跟符合常量的定义。


综上所述,#define和const、static有本质的区别。const和static是严谨更严谨,严格更严格的区别。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值