在 C 语言中,常量(constant)是指在程序运行期间其值保持不变的量。C 语言支持多种类型的常量,包括数值常量、字符常量、字符串常量以及符号常量。以下是详细讲解:
1. 数值常量
数值常量是直接表示数值的常量,包括整数常量和浮点数常量。
(1)整数常量
- 表示一个具体的整数值,可以是十进制、八进制或十六进制。
- 十进制:如
10
,123
- 八进制:以
0
开头,如075
(相当于十进制的 61) - 十六进制:以
0x
或0X
开头,如0x1A
(相当于十进制的 26)
修饰符
整数常量可以通过以下后缀指定类型和大小:
U
或u
:无符号类型(unsigned)L
或l
:长整型(long)LL
或ll
:长长整型(long long)- 示例:
123U // 无符号整型 456L // 长整型 789ULL // 无符号长长整型
(2)浮点数常量
- 表示小数或科学计数法的值。
- 示例:
3.14 // 小数形式 2.5e3 // 科学计数法(等价于 2.5 * 10^3) 1.23E-4 // 科学计数法(等价于 1.23 * 10^-4)
修饰符
f
或F
:表示单精度浮点数(float)l
或L
:表示长双精度浮点数(long double)- 示例:
3.14f // 单精度 2.71L // 长双精度
2. 字符常量
- 表示单个字符,使用单引号
''
括起来。 - 示例:
'a' // 字符 'a' '1' // 字符 '1',不是数字 1 '\n' // 转义字符,表示换行符
转义字符
- 字符常量可以包括一些转义字符,以表示特殊字符。
- 常见转义字符:
\n
:换行符\t
:水平制表符\\
:反斜杠\'
:单引号\"
:双引号\0
:空字符(ASCII 值为 0)
3. 字符串常量
-
表示一组字符序列,使用双引号
""
括起来。 -
示例:
"Hello, World!" "12345" "C语言\n"
-
字符串与字符的区别:
- 字符:
'a'
,占 1 个字节。 - 字符串:
"a"
,占 2 个字节(包括末尾的空字符\0
)。
- 字符:
4. 符号常量
符号常量通过 #define
或 const
关键字定义。
(1)#define
宏定义
- 用于定义常量,在预处理阶段由预处理器替换。
- 示例:
#define PI 3.14159 #define MAX 100
- 注意:
#define
定义的常量没有类型信息,仅仅是文本替换。
(2)const
关键字
- 定义具有类型的只读变量。
- 示例:
const float PI = 3.14159; const int MAX = 100;
- 优点:
- 常量有类型检查,且可以结合指针等高级用法。
5. 区别与应用场景
特性 | #define | const |
---|---|---|
类型支持 | 无类型,仅文本替换 | 有具体类型 |
调试友好性 | 不容易被调试工具识别 | 易于调试 |
范围控制 | 全局作用域 | 受变量作用域限制 |
是否可取地址 | 否 | 是 |
6. 使用示例
#include <stdio.h>
#define PI 3.14159
int main() {
const int MAX = 100;
printf("PI: %f\n", PI); // 输出 3.14159
printf("MAX: %d\n", MAX); // 输出 100
// MAX = 200; // 错误,MAX 是只读变量
return 0;
}
如果需要更深入理解某一部分,可以进一步展开!
标签:字符,const,常量,示例,MAX,详细,讲解,define From: https://blog.csdn.net/2401_88186301/article/details/144321540