C 语言常量的前缀和后缀
在 C 语言中,常量(literal)用于表示固定的值,可以是整数、浮点数、字符或字符串。不同的前缀和后缀用于指定常量的类型和格式,帮助编译器理解常量的类型和范围。以下是C语言中常见的常量前缀和后缀及其详细解析。
1. 整型常量
整型常量用于表示整数值。前缀用于指定数值的进制,后缀用于指定常量的类型。
1.1 整型常量的前缀
前缀 | 全称 | 说明 | 示例 |
---|---|---|---|
无前缀 | - | 十进制整数 | 123 |
0 |
Octal | 八进制整数 | 075 |
0x 或 0X |
Hexadecimal | 十六进制整数 | 0x7F |
0b 或 0B |
Binary | 二进制整数 | 0b1010 |
示例代码
#include <stdio.h>
int main() {
int decimal = 123; // 十进制
int octal = 075; // 八进制
int hex = 0x7F; // 十六进制
int binary = 0b1010; // 二进制
printf("Decimal: %d\n", decimal);
printf("Octal: %d\n", octal);
printf("Hex: %d\n", hex);
printf("Binary: %d\n", binary);
return 0;
}
输出结果
Decimal: 123
Octal: 61
Hex: 127
Binary: 10
1.2 整型常量的后缀
后缀 | 全称 | 说明 | 示例 |
---|---|---|---|
U 或 u |
Unsigned | 无符号整型 | 123U |
L 或 l |
Long | 长整型 | 123L |
LL 或 ll |
Long Long | 长长整型 | 123LL |
UL , uL , Ul , UL |
Unsigned Long | 无符号长整型 | 123UL |
ULL , ull , uLL , Ull |
Unsigned Long Long | 无符号长长整型 | 123ULL |
示例代码
#include <stdio.h>
int main() {
unsigned int u_decimal = 123U; // 无符号整型
long l_decimal = 123L; // 长整型
long long ll_decimal = 123LL; // 长长整型
unsigned long ul_decimal = 123UL; // 无符号长整型
unsigned long long ull_decimal = 123ULL; // 无符号长长整型
printf("Unsigned Decimal: %u\n", u_decimal);
printf("Long Decimal: %ld\n", l_decimal);
printf("Long Long Decimal: %lld\n", ll_decimal);
printf("Unsigned Long Decimal: %lu\n", ul_decimal);
printf("Unsigned Long Long Decimal: %llu\n", ull_decimal);
return 0;
}
输出结果
Unsigned Decimal: 123
Long Decimal: 123
Long Long Decimal: 123
Unsigned Long Decimal: 123
Unsigned Long Long Decimal: 123
2. 浮点型常量
浮点型常量用于表示带小数点的数值。后缀用于指定浮点数的精度。
2.1 浮点型常量的后缀
后缀 | 全称 | 说明 | 示例 |
---|---|---|---|
F 或 f |
Float | 单精度浮点型 | 3.14F |
L 或 l |
Long Double | 扩展精度浮点型 | 3.14L |
示例代码
#include <stdio.h>
int main() {
float f = 3.14F; // 单精度浮点型
double d = 3.14; // 双精度浮点型
long double ld = 3.14L; // 扩展精度浮点型
printf("Float: %f\n", f);
printf("Double: %f\n", d);
printf("Long Double: %Lf\n", ld);
return 0;
}
输出结果
Float: 3.140000
Double: 3.140000
Long Double: 3.140000
3. 字符型和字符串型常量
字符型常量和字符串型常量用于表示字符和字符串值。它们没有前缀和后缀。
3.1 字符型常量
字符型常量用单引号包围,表示单个字符的 ASCII 码值。
示例代码
#include <stdio.h>
int main() {
char c = 'A'; // 字符型常量
printf("Character: %c\n", c);
printf("ASCII Value: %d\n", c);
return 0;
}
输出结果
Character: A
ASCII Value: 65
3.2 字符串型常量
字符串型常量用双引号包围,表示一个字符数组,末尾自动包含一个 null 终止符 \0
。
示例代码
#include <stdio.h>
int main() {
const char* str = "Hello"; // 字符串型常量
printf("String: %s\n", str);
return 0;
}
输出结果
String: Hello
表格总结
类型 | 前缀 | 后缀 | 全称 | 说明 | 示例 |
---|---|---|---|---|---|
整型常量 | 无前缀 | U 或 u |
Unsigned | 无符号整型 | 123U |
L 或 l |
Long | 长整型 | 123L |
||
LL 或 ll |
Long Long | 长长整型 | 123LL |
||
UL , uL , Ul , UL |
Unsigned Long | 无符号长整型 | 123UL |
||
ULL , ull , uLL , Ull |
Unsigned Long Long | 无符号长长整型 | 123ULL |
||
0 |
- | Octal | 八进制整数 | 075 |
|
0x 或 0X |
- | Hexadecimal | 十六进制整数 | 0x7F |
|
0b 或 0B |
- | Binary | 二进制整数 | 0b1010 |
|
浮点型常量 | - | F 或 f |
Float | 单精度浮点型 | 3.14F |
- | L 或 l |
Long Double | 扩展精度浮点型 | 3.14L |
|
字符型常量 | 无前缀 | - | - | 单个字符,ASCII 码值 | 'A' |
字符串型常量 | 无前缀 | - | - | 字符数组,末尾包含 \0 终止符 |
"Hello" |
5. 总结
在C语言中,常量的前缀和后缀用于明确指定常量的类型和进制系统。前缀主要用于区分不同进制的数字常量,而后缀则用于区分不同类型的整数和浮点数。正确使用前缀和后缀,可以提高代码的可读性和可维护性,确保编译器正确地理解和处理常量。
6. 参考文献
- Kernighan, Brian W., and Dennis M. Ritchie. The C Programming Language. Prentice Hall, 1988.
- Prata, Stephen. C Primer Plus. Addison-Wesley Professional, 2013.
- ISO/IEC 9899:2018, Information technology – Programming languages – C.
- ISO/IEC. (2024). ISO/IEC DIS 9899. Programming Languages – C.
7. 结束语
- 本节内容已经全部介绍完毕,希望通过这篇文章,大家对C语言中常量的前缀和后缀有了更深入的理解和认识。
- 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持!