欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > C++ 语言特性26 - 字面量介绍

C++ 语言特性26 - 字面量介绍

2025/2/23 10:16:32 来源:https://blog.csdn.net/zg260/article/details/142712574  浏览:    关键词:C++ 语言特性26 - 字面量介绍

目录

一:概述

二:举例

1. 整数字面量

 整数类型修饰符:

2. 浮点字面量

浮点数类型修饰符:

3. 字符字面量

4. 字符串字面量

5. 布尔字面量

6. 空指针字面量

7. 用户定义字面量(C++11 引入)


一:概述

        在 C++ 中,字面量(Literal) 是指源代码中直接表示固定值的常量。字面量是不可更改的值,编译器在编译时直接将它们的值嵌入到程序中。C++ 提供了几种不同类型的字面量,用来表示整数、浮点数、字符、字符串等。

二:举例

   1. 整数字面量

    整数字面量用于表示整数常量。可以用十进制、八进制、十六进制或二进制来表示

//十进制
int a = 42;//八进制
int b = 052;  // 以八进制表示,等价于十进制 42//十六进制
int c = 0x2A;  // 十六进制表示,等价于十进制 42//二进制
int d = 0b101010;  // 二进制表示,等价于十进制 42
  整数类型修饰符:

  整数字面量可以使用以下修饰符来指定类型:

  • uU:无符号整数类型
  • lL:长整型
  • llLL:长长整型
unsigned int e = 42u;    // 无符号整数
long int f = 42L;        // 长整型
long long int g = 42LL;  // 长长整型

2. 浮点字面量

浮点字面量表示带小数点的数字,默认为 double 类型。可以使用 eE 来表示指数形式的浮点。

//十进制浮点数
double h = 3.14159;//指数表示浮点数
double i = 1.2e3;  // 等价于 1.2 * 10^3
double j = 1.2E-2; // 等价于 1.2 * 10^-2
浮点数类型修饰符:
  • fF:指定为 float 类型
  • lL:指定为 long double 类型
float k = 3.14159f;      // 浮点数为 float 类型
long double l = 3.14159L; // 浮点数为 long double 类型

3. 字符字面量

字符字面量用于表示单个字符,必须放在单引号内。例如 'A''b'

//字符字面量可以使用转义字符表示特殊字符,如 '\n'(换行符)、'\t'(制表符)、'\\'(反斜杠)。
char m = 'A';//宽字符字面量用于表示 wchar_t 类型的字符,前缀 L 表示宽字符字面量。
wchar_t n = L'世';

4. 字符串字面量

字符串字面量是由一对双引号 " 包围的字符序列。例如 "Hello, World!"

//字符串字面量末尾会自动加上一个空字符 \0,以表示字符串的结束。
const char* str = "Hello, World!";//宽字符串字面量用于表示宽字符序列,使用 L 作为前缀:
const wchar_t* wideStr = L"Hello, World!";//UTF-8 编码,前缀 u8
//const char* utf8Str = u8"Hello, World!";//UTF-16 编码,前缀 u
const char16_t* utf16Str = u"Hello, World!";//UTF-32 编码,前缀 U
const char32_t* utf32Str = U"Hello, World!";//多行字符串字面量
const char* str = R"(This is a multi-line string
that spans multiple lines
without needing special characters like \n)";//多行字符串字面量
const char* str = "This is a multi-line string\n""that spans multiple lines\n""using string concatenation.";

5. 布尔字面量

布尔字面量表示 truefalse

bool p = true;
bool q = false;

6. 空指针字面量

C++11 引入了 nullptr 作为空指针字面量,取代传统的 NULL

int* r = nullptr;

7. 用户定义字面量(C++11 引入)

C++11 允许开发者定义自定义字面量,主要用于增强代码的可读性。例如,可以通过用户定义字面量来创建单位表示法,如秒、米等。

long double operator"" _kg(long double x) {return x * 1000; // 转换为克
}int main() {auto weight = 2.5_kg; // 2.5 千克 = 2500 克
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词