当前位置: 首页 > ops >正文

C++笔记6:数字字面量后缀和前缀总结

在C++中,可以在数字字面量后面添加字母后缀(或前缀)来表示特定的数据类型。这些后缀能够明确指定字面量的类型,避免类型转换带来的潜在问题。以下是常见的几种类型后缀及其含义:

1. 整数后缀

  • uU:表示 unsigned 类型。
    unsigned int a = 42U;  // 无符号整数
    
  • lL:表示 long 类型(建议使用大写 L,避免与数字 1 混淆)。
    long b = 1000L;        // long类型
    
  • llLL:表示 long long 类型。
    long long c = 9999999999LL;  // long long类型
    
  • 组合后缀:可以组合使用,如 ULunsigned long)、ULLunsigned long long)。
    unsigned long long d = 18446744073709551615ULL;
    

2. 浮点数后缀

  • fF:表示 float 类型。
    float e = 3.14F;       // float类型(单精度)
    
  • lL:表示 long double 类型。
    long double f = 3.14159265358979L;  // long double类型
    
  • 无后缀:默认是 double 类型。
    double g = 3.14;       // double类型(双精度)
    

3. 字符和字符串字面量

  • u8:表示 UTF-8 字符串字面量(C++11 起)。
    const char* str = u8"你好";  // UTF-8编码
    
  • u:表示 char16_t 类型的 Unicode 字符/字符串。
    char16_t c = u'π';       // UTF-16编码
    
  • U:表示 char32_t 类型的 Unicode 字符/字符串。
    char32_t d = U'🐶';      // UTF-32编码
    
  • L:表示宽字符/宽字符串(wchar_t 类型)。
    wchar_t wc = L'中';      // 宽字符
    

4. 二进制和十六进制前缀

  • 0b0B:表示二进制字面量(C++14 起)。
    int bin = 0b1010;       // 二进制,等于10
    
  • 0x0X:表示十六进制字面量。
    int hex = 0xFF;         // 十六进制,等于255
    
  • 0:前缀为 0 表示八进制字面量。
    int oct = 010;          // 八进制,等于8
    

示例总结

后缀类型示例
Uunsigned int42U
Llong1000L
LLlong long9999999999LL
ULunsigned long123456789UL
ULLunsigned long long18446744073709551615ULL
Ffloat3.14F
Llong double3.14159265358979L

注意事项

  1. 避免混淆LL 表示 long long,而 l 容易与数字 1 混淆,建议使用大写 L
  2. 类型范围:使用后缀可以避免隐式类型转换导致的溢出问题,例如:
    // 错误:默认是int,可能溢出
    long long overflow = 9999999999;  // 未加LL,可能导致溢出// 正确:明确指定为long long类型
    long long correct = 9999999999LL;
    
http://www.xdnf.cn/news/5365.html

相关文章:

  • YOLO-World:基于YOLOv8的开放词汇目标检测
  • 2050年的世界是怎样的?
  • Windows系统更新一键禁用:WindowsUpdateBlocker轻量级工具推荐
  • 【高数上册笔记篇02】:数列与函数极限
  • vue中理解MVVM
  • 12、电子电路设计与PCB布局组件 (概念) - /设计与仿真组件/pcb-layout-tool
  • C语言和Python在负数取余运算(%)上的差异
  • AJAX原理
  • python实战项目69:基于Python爬虫的链家二手房数据采集方法研究
  • HTTP 和 WebSocket 的区别
  • vue3模版语法
  • HTML12:文本框和单选框
  • 多源最短路径(Floyed)
  • 【人工智能】微调魔法:释放大模型的个性化潜能
  • 微机系统:第二章节:16位的intel8086处理器
  • 嵌入式硬件篇---无线通信模块
  • 【PostgreSQL系列】PostgreSQL性能优化
  • springboot3+vue3融合项目实战-大事件文章管理系统-参数校验优化
  • 十、STM32入门之低功耗蓝牙(基于ESP32C3芯片)
  • 【数据结构入门训练DAY-31】组合的输出
  • Nacos 起源
  • Docker 部署 - Crawl4AI 文档 (v0.5.x)
  • AI陪练 VS 真人教学
  • 19、DeepSeek LLM论文笔记
  • docker compose ps 命令
  • 三、Hive DDL数据库操作
  • 大模型中的temperature参数是什么
  • 实战项目2(03)
  • C++ 模板方法模式详解
  • [Java][Leetcode simple]26. 删除有序数组中的重复项