【现代C++】自定义字面量-序:字面量(一)

本文介绍了C++中的自定义字面量,并详细讲解了整数字面量和浮点字面量的使用,包括进制前缀、后缀以及C++11和C++14引入的新特性,如二进制字面量和数字分隔符。此外,还探讨了字面量的类型推导规则和浮点字面量的十六进制表示。
摘要由CSDN通过智能技术生成

(点击上方公众号,可快速关注)

C++11引入了自定义字面量,由于这个语言特性的外延较大,为了系统介绍它,先把字面量的知识补全。在看语言规范的过程中,的确发现了好多知识点是以前没接触过的,这些没接触过的知识点主要来源两方面:

  • C++11后修复。现代C++在越来越多的方面修复早期C++不合理的地,甚至C语言的一些不合理的规则,比如,本篇文章要介绍的整数字面量的整数提升规则。

  • C++11后新增。增加了一些方便的语言特性,用于提升代码可读和生产力。比如,二进制整数字面量、数字分隔符等。

为了保持文章的轻量级,本篇主要介绍字面量的概念和整数字面量、浮点字面量的内容。

何为字面量

简单来说,字面量就是从字面上看,它的值等于其自身的常量。在C语言中,通常称之为常量,而在C++中,常量包含的内容要多于C,所以被称之为字面量。

注意上面标黑的文字,这是字面量最重要的特征,基本上所有的语言都遵循这个原则。由于C++没有提供REPL(Read-Eval-Print-Loop),我们这里拿Python举例:

>>> 1
1

>>> 'abc'
'abc'

>>> 1.0
1.0

在Python中,字面量有整数、浮点数和字符串等几类,可以看到,对字面量求值之后,结果的值就是字面量本身,在C++中同样如此。

字面量的种类

在C++中,字面量包括7类。

整数字面量(integer literal)
前缀

前缀标识进制信息,没有前缀代表默认的10进制。

42;     //10进制,无前缀
052;    //8进制,前缀0
0x2a;   //16进制,前缀0x
0
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值