c++基础知识 字面值常量

文章内容如下,自己总结的一些资料,如若有误,还望指正
字面值常量
指针字面值
布尔型字面值
整型和浮点型的字面值
字符与字符串字面值
字面值的默认类型与指定类型

字面值常量

字面值常量首先是具有常量的性质,可以读取而不能更改其的值,只能作右值引用,每一个字面值常量都对应着一种数据类型,字面值由形式和值所构成,共同决定了字面值的数据类型。例如int i= 0x33,字面值是0x33,它的形式是十六进制数,值为33,它对应的数据类型是int,作用是给int形式的变量赋值。当然,如果变量的类型不是int,就会发生类型的转换,如果不能转换就报错:TypeError

指针字面值

nullptr是指针字面值,防止出现野指针

布尔型字面值

true or false

整型和浮点型的字面值

20(十进制数);024(八进制数);0x14(十六进制数);
//上面的字面值都表示数量20这样一个抽象的概念。

像上面的栗子一样,可以将整型字面值写成十进制,八进制(0开头的整数代表八进制),十六进制(0x或0X开头的整数代表十六进制)

0.001   1e-31* 10^-3,指数部分用e、E标识)   .001  
//都表示浮点数0.001

浮点型字面值表现为小数和科学计数法表示的指数

字符与字符串字面值

单引号括起来的一个字符称为char型字面值,双引号括起来的零个或多个字符构成你字符串型字面值

'a' //字符字面值
"hello world"//字符串字面值,结尾处还有一个‘\0’字符

子字符串实际是字符数组构成
字符串实际长度比他看到的长度多一,因为存在一个空字符‘\0

转义序列:c++语言中有特殊含义的字符(单引号,双引号,问号,反斜号)
需要加反斜号转义。
\n 换行

\t 横向跳格(跳到下一制表位置)

\v 竖向跳格

\b 退格

\r 回车

\f 走纸换页

\ 反斜杠字符’\’

\’ 单引号字符

\a 鸣玲

\ddd 1到3位八进制数所代表的字符

\xhh 1到2位十六进制数所代表的字符

字面值的默认类型与指定类型

字面值的默认类型
整型字面值中,十进制字面值默认是带符号的(),八、十六进制可以是带符号也可以不是,然后根据值的大小选择对应数据类型,一般是选择最小可以包含值的数据类型,例如 20 ,int,long,double的表示范围都可以表示20,但是默认选择int类型,当超过int类型表示的范围时,就选用更大的类型。十六进制和八进制也一样。另外short是没有对应的字面值的

浮点型字面值的默认数据类型为double

字面值指定类型

前缀 含义 类型
u Unicode16字符 char16_t
U Unicode32字符 char32_t
L 宽字符 wchar_t
u8 utf-8(仅用于字符串字面值) char

整型字面值

后缀 最小匹配类型
u or U unsigned
l or L long
ll or LL long long

浮点型字面值

后缀 类型
f or F float
l or L long double
L'a'//宽字符类型字面值值,类型是wchar_t
u8"helloworld"//utf-8编码的字符串字面值
32u//unsigned

你可能感兴趣的:(c/c++,基础知识学习)