C语言中的常量与只读变量,#define与const的区别

#include中的#表明C处理器需要在编译器接手工作之前先处理这条指令。
#define 这条定义宏的语句,是不是很熟悉,这条预处理指令会在编译器编译前把源文件中使用到这个宏的地方都先展开。

  • #define NUM 12 这个定义了一个宏常量,它的处理发生编译阶段。
  • const int num = 15; 这个将变量num限制为只读,它的处理发生在程序运行时。

因为它们的值都不能够改变,都是它们的意义却是不同的。

c 复制代码
#define LEN 100
const int TOTAL = 200;
int main(){
	int a[LEN]; // 正确
	int b[TOTAL]; // 错误 
}

代码在编译时就需要确定好数组的长度,所以只能用#define定义的宏常量,const的作用是限制变量为只读,它的值只有在运行时才能够确定,因此用const的变量来指定数组长度会报错。

相关推荐
Star在努力34 分钟前
15-C语言:第15~16天笔记
c语言·笔记·算法
LZQqqqqo35 分钟前
C# 接口(interface 定义接口的关键字)
java·开发语言·c#
寒水馨43 分钟前
Java 9 新特性解析
java·开发语言·新特性·java9·jdk9
拓端研究室1 小时前
专题:2025医药生物行业趋势与投融资研究报告|附90+份报告PDF、原数据表汇总下载
android·开发语言·kotlin
xdlka1 小时前
C++初学者4——标准数据类型
开发语言·c++·算法
SoveTingღ2 小时前
【C语言】数组和指针一样吗?
c语言·unix·指针·数组·嵌入式软件
奇树谦3 小时前
Qt|槽函数耗时操作阻塞主界面问题
开发语言·qt
小羊斩肖恩3 小时前
Go性能优化深度指南:从原理到实战
开发语言·性能优化·golang
晨非辰4 小时前
#C语言——学习攻略:深挖指针路线(三)--数组与指针的结合、冒泡排序
c语言·开发语言·数据结构·学习·算法·排序算法·visual studio
一只小风华~7 小时前
JavaScript 函数
开发语言·前端·javascript·ecmascript·web