C语言常量

常量的分类

字面常量 和 符号常量

1. 字面常量

直接写在代码里的数值,无需定义,直接使用.例:100、3.14、“a”、“hello”等

字面常量分为4种:整型、浮点型、字符型、字符串常量

整型常量

C语言支持三中进制的整型常量(C语言不支持2进制

进制

书写规则

实例

十进制

正常数字

1,2,3,5,9

八进制

以0开头             

012

十六进制

以0x开头

0x1A

2字符常量

用 单引号 '' 包裹,只能存放1个字符

示例:'A'、'9'、'#'

特殊:转义字符常量

转义字符

作用

\n

换行

\t

制表符(空格缩进)

\\

输出反斜杠

\'

输出单引号

\"

输出双引号

字符串常量

用 双引号 "" 包裹,可以存放多个字符

示例:"Hello C"、"12345"、"学习常量"

2.符号常量

符号常量是通过符号名定义的常量。符号常量可以用#define预处理指令或者const关键字定义。

预处理阶段直接纯文本替换,无类型检查

如图预处理的时候已经将文本替换了。

定义在函数外部,全局生效

不能被修改、不能赋值

常量名建议 全大写,区分变量

2. const 修饰常量(只读变量)

  • 有数据类型,编译器会做类型检查,更安全

  • 可以定义在局部/全局

  • 必须初始化赋值,后续不可修改

  • 特点:const常量有类型限制,编译器会进行类型检查。const常量存储在内存中,可以参与程序运行时的计算。

  • #define VS const 核心区别(高频考点)

  • 对比维度

    #define 宏常量

    const 常量

    类型检查

    无,纯文本替换

    有,类型严格检查

    作用域

    全局(默认整个文件)

    随定义位置(局部/全局)

    内存占用

    不占用内存,直接替换

    占用内存,属于只读变量

    可否修改

    完全不可修改

    只读,不可修改

    推荐场景

    全局固定参数(PI、最大值)

    需要类型安全、局部常量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值