鱼C论坛

 找回密码
 立即注册
查看: 61|回复: 1

[学习笔记] C语言常量

[复制链接]
发表于 6 天前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1,常量的定义
2.符号常量
  标识符
  字符串
  宏定义
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 6 天前 | 显示全部楼层
C语言常量详解:

1. 常量的定义
常量是程序运行期间值不可改变的量,分为:
  • 字面常量:直接写出的值(如 5, 3.14, 'A'
  • 符号常量:用标识符表示的常量(需定义后使用)


2. 符号常量
通过标识符表示常量值,两种实现方式:

方式1:宏定义(预处理替换)
使用 #define 定义,无分号结尾

  1. #define PI 3.14159    // 定义浮点常量
  2. #define MAX 100       // 定义整型常量
  3. #define MSG "Hello"   // 定义字符串常量
复制代码

特点:
  • 预处理时直接替换文本
  • 不占用内存空间
  • 作用范围从定义处到文件结束


方式2:const 关键字(C99推荐)

  1. const int MAX = 100;          // 整型常量
  2. const char MSG[] = "Hello";   // 字符串常量
复制代码

特点:
  • 有类型检查更安全
  • 占用实际内存空间
  • 作用域遵循变量规则(块作用域/文件作用域)


3. 字符串常量
用双引号包裹的字符序列:

  1. "FishC"   // 实际存储为 'F','i','s','h','C','\0'
复制代码

注意:
  • 自动添加结尾的 \0(空字符)
  • 不可修改内容(存储在只读内存区)


使用示例:

  1. #include <stdio.h>
  2. #define GREET "你好,"  // 宏定义字符串常量

  3. int main() {
  4.     const char name[] = "鱼油";  // const字符串常量
  5.     printf(GREET "%s!\n", name);
  6.     return 0;
  7. }
  8. // 输出:你好,鱼油!
复制代码


重要区别总结:
  • 宏定义:文本替换,无类型,推荐用于全局常量
  • const:类型安全,有内存地址,推荐用于局部常量


以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-16 14:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表