在 C 语言中,常量(literal)用于表示固定的值,可以是整数、浮点数、字符或字符串。不同的前缀和后缀用于指定常量的类型和格式,帮助编译器理解常量的类型和范围。以下是C语言中常见的常量前缀和后缀及其详细解析。
整型常量用于表示整数值。前缀用于指定数值的进制,后缀用于指定常量的类型。
前缀 | 全称 | 说明 | 示例 |
---|---|---|---|
无前缀 | - | 十进制整数 | 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
后缀 | 全称 | 说明 | 示例 |
---|---|---|---|
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
浮点型常量用于表示带小数点的数值。后缀用于指定浮点数的精度。
后缀 | 全称 | 说明 | 示例 |
---|---|---|---|
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
字符型常量和字符串型常量用于表示字符和字符串值。它们没有前缀和后缀。
字符型常量用单引号包围,表示单个字符的 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
字符串型常量用双引号包围,表示一个字符数组,末尾自动包含一个 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" |
在C语言中,常量的前缀和后缀用于明确指定常量的类型和进制系统。前缀主要用于区分不同进制的数字常量,而后缀则用于区分不同类型的整数和浮点数。正确使用前缀和后缀,可以提高代码的可读性和可维护性,确保编译器正确地理解和处理常量。