【C语言】常量的 “前缀和后缀” 大通关!

举报
LuckiBit 发表于 2024/12/05 16:51:22 2024/12/05
【摘要】 在C语言中,常量的前缀和后缀用于明确指定常量的类型和进制系统。前缀主要用于区分不同进制的数字常量,而后缀则用于区分不同类型的整数和浮点数。正确使用前缀和后缀,可以提高代码的可读性和可维护性,确保编译器正确地理解和处理常量。

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. 结束语

  1. 本节内容已经全部介绍完毕,希望通过这篇文章,大家对C语言中常量的前缀和后缀有了更深入的理解和认识。
  2. 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。再次感谢大家的关注和支持!
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。