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的变量来指定数组长度会报错。

相关推荐
Peace & Love48717 小时前
C++初阶 -- 模拟实现list
开发语言·c++·笔记
liliangcsdn17 小时前
如何结合langchain、neo4j实现关联检索问答
开发语言·python·langchain·neo4j
兮兮能吃能睡17 小时前
R语言~T检验
开发语言·r语言
预测模型的开发与应用研究17 小时前
从入门到实操:贝叶斯分析完整技术步骤与核心R包指南
开发语言·人工智能·r语言
j七七17 小时前
5分钟搭微信自动回复机器人5分钟搭微信自动回复机器人
运维·服务器·开发语言·前端·python·微信
豐儀麟阁贵17 小时前
5.5类的主方法
java·开发语言
Hs_QY_FX18 小时前
幸福指数数据分析与预测:从数据预处理到模型构建完整案例
开发语言·python·机器学习
yuuki23323318 小时前
【数据结构】顺序表的实现
c语言·数据结构·后端
GilgameshJSS18 小时前
STM32H743-ARM例程31-CAN
c语言·arm开发·stm32·单片机·嵌入式硬件
似水এ᭄往昔18 小时前
【C++】--list的使用和模拟实现
开发语言·c++