当前位置: 首页 > news >正文

【轻松学C:编程小白的大冒险】---常量的定义、声明与应用场景 07

在这里插入图片描述

  • 在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。
  • 而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。

【轻松学C:编程小白的大冒险】---常量的定义、声明与应用场景 07

  • 🚀 今日冒险目标:驯服常量大魔王
  • 一、🧩常量:被封印的魔法水晶
  • 二、🔒封印魔法:常量的内存秘密
  • 三、🔄常量的魔法应用
    • 1、🌟 数学公式
    • 2、🛡️ 安全防线
    • 📜3、 配置文件
  • 四🧙♂️封印方式大比拼
  • 五、🧠常量的生存法则
    • 1、📅 生命周期
      • 2、🏰 作用域
  • 六、💡小课堂
  • 七、✨ 今日金句


🚀 今日冒险目标:驯服常量大魔王

欢迎回到C语言魔法学校!今天我们要收服编程世界里最固执的伙伴——常量。它像被封印的魔法水晶,一旦设定就永远不变!准备好学习如何用常量打造坚不可摧的代码了吗?

一、🧩常量:被封印的魔法水晶

想象你有一个黄金宝箱

  • 一旦放入钻石,就永远无法取出或更换(const常量)
  • 用魔法契约提前规定好内容(#define宏常量)
  • 只能读取,不能修改(永恒不变的规则)

定义常量

const int MAX_SCORE = 100;   // 用const封印的整数常量
#define PI 3.1415926535       // 用#define契约规定的浮点数

二、🔒封印魔法:常量的内存秘密

当你写下const int a = 5;时,编译器会:

  1. 在内存中分配4字节空间(同int变量)
  2. 贴上"只读"封条(禁止修改)
  3. 存进去数字5

内存示意图

内存地址   | 内容  | 标签        | 权限
0x2000    | 05    | MAX_SCORE   | 只读
0x2004    | 0A    | age(变量) | 读写

冷知识

  • const常量在编译时检查修改行为(会报错)
  • #define宏在预处理阶段直接替换(无类型检查)

三、🔄常量的魔法应用

1、🌟 数学公式

#define GRAVITY 9.8    // 重力加速度
float distance = 0.5 * GRAVITY * time * time;

2、🛡️ 安全防线

const int LOGIN_ATTEMPTS = 3;  // 最大登录次数
for (int i = 0; i < LOGIN_ATTEMPTS; i++) {
    // 登录逻辑
}

📜3、 配置文件

#define SERVER_URL "http://api.example.com"
// 网络请求使用固定URL

四🧙♂️封印方式大比拼

类型语法作用时机特性
constconst int a = 5;编译阶段有类型检查,内存中有存储
#define#define A 5预处理阶段无类型检查,直接文本替换

🌰 举个栗子

const float PI = 3.14f;   // 正确,类型匹配
#define PI 3.14f          // 正确,但可能被重新定义

五、🧠常量的生存法则

1、📅 生命周期

  • 与变量相同:全局常量程序启动时存在,局部常量函数运行时存在

2、🏰 作用域

  • const常量:与变量作用域一致(文件、函数、代码块)
  • #define宏:从定义处到文件结束(可用#undef提前解除)

六、💡小课堂

  • 专业术语

    • 常量表达式:编译时能计算出结果的表达式(如1+2
    • 类型安全const#define更安全,防止类型不匹配错误
  • 编程冷笑话
    Q:为什么#define宏不能当const用?
    A:因为它是个"文字游戏玩家",而const是"内存管家"。

七、✨ 今日金句

变量像河流可以流动,
常量像山脉永远矗立,
两者结合才能写出刚柔并济的代码!

相关文章:

  • 13.数据结构(软考)
  • TypeError: Assignment to constant variable.
  • WebSocket:实现实时通信的利器
  • 【Bert系列模型】
  • 【记录一下学习】Embedding 与向量数据库
  • 结合rpart包的决策树介绍
  • 新疆美女演员吾热叶提正式加入创星演员出道计划,开启演艺事业新篇章
  • 【HeadFirst系列之HeadFirst设计模式】第17天之深入责任链模式:应对复杂请求处理的设计思路
  • 深入解析Seata:分布式事务的终极解决方案
  • 【情境领导者】评估情境——准备度水平
  • 开发环境搭建-完善登录功能
  • 静态时序分析:SDC约束命令set_ideal_network详解
  • Manus邀请码申请与获取全攻略
  • 【DeepSeek应用】调用 Zotero 阅读与分析文献(上)
  • cSpell无法识别词语消除报错
  • SDK编程,MFC编程,WTL编程之间的关系
  • 基于STC89C52的4x4矩阵键盘对应键值显示测试
  • MySQL-----表操作.数据库字典.表约束
  • SyntaxError: Missing semicolon
  • PsiQuantum 推出 Omega 芯片拟打造量子计算中心
  • 怎样做一家网站/网站新站整站排名
  • 网站制作代理加盟/国际要闻
  • 手机网站 微信/做竞价托管的公司
  • 哪个网站上可以做代打/外贸网站建设案例
  • 广东建设监理协会网站题库/aso优化技巧
  • 深喉咙企业网站生成系统/福建网络seo关键词优化教程