1.2 字面值常量

一、字面值常量概述

  1. 字面值常量包括整型字面值,浮点型字面值,字符和字符串字面值,布尔字面值,指针字面值四种。
  2. 字面值常量的形式和值决定了他的数据类型。

二、整型字面值

1. 整型字面值格式

名称十进制八进制十六进制
例子200240x24
注意前面加零不是大写的o前面加零x,不是大写的ox

2.整型字面值类型

名称十进制八进制和十六进制
可匹配类型有符号整型有符号和无符号整型都有可能
  • 有符号整型包括int,long,long long
  • 无符号整型包括unsigned int,unsigned long,unsigned long long
  • 整型字面值类型是能容纳其字面值大小的所有类型中尺寸最小者
  • 如果一个字面值连与之关联的尺寸最大的数据类型都放不下,会产生错误
  • 负整数的字面值中不包括负号,如-42的字面值是42,负号则是对字面值42取负

三、浮点型字面值

1.浮点型字面值格式

  • 浮点型字面值是用小数或者科学计数法来表示
小数表示小数部分为零省略小数整数部分为零省略整数科学计数法表示小数+科学计数法
3.143..143e2,3E23.14E0

2.浮点型字面值类型

  • 浮点型字面值类型是一个double

四、字符和字符串字面值

1.字符和字符串字面值格式

名称字符字面值字符串字面值
例子’a‘”a“
说明单引号引用双引号引用

2.字符和字符串字面值类型

  • 字符字面值类型为char型,字符串字面值类型为char型数组
  • 编译器会在每个字符串结尾加一个空字符‘\0’,如“123”数组大小为4
  • 特别注意区分“a”,他对应的数组有两个元素,一个a,一个空字符
  • 如果字符串字面值由空格,缩进,换行分割,他们实际是一个字符,存储在一个数组里面。

3.转义序列

  • 当使用不可打印字符与在C++中有特殊含义字符时,需要用到转移序列,如换行符‘\n’
  • 转移序列被当做一个字符使用
  1. C++规定的转义序列
    在这里插入图片描述

  2. 泛化转义序列

名称八进制式十六进制式
格式\后面跟3个以内八进制数字\x后面跟任意个十六进制数字
说明八进制数字超过3个则后面的数字不看要用到后面跟着的所有十六进制数字

五、布尔字面值和指针字面值

  1. 布尔字面值:true和false
  2. 指针字面值
  • nullptr:含义是空指针,有C++11引入,解决了NULL的二义性问题。
  • NULL二义性:NULL即是空指针,又被重定义为int型的0,在使用NULL作为实参在函数间传递时,其参数类型匹配上具有int型和指针二义性。

六、指定字面值的类型

可以通过添加前缀或者后缀来指定字面值的类型
在这里插入图片描述

  • 整型字面值只能指定最小匹配类型,最终字面值的类型仍然要根据字面值大小确定
  • 使用后缀时候使用L而不使用l,因为字母l会和数字1混淆
  • 浮点型字面值不可以添加U后缀,因为浮点型均为有符号类型
  • U与L结合:UL,ULL,uL,uLL
  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值