C++Primer(第五版) 学习笔记——基本内置类型(第二章)

可寻址的最小内存块称为字节(byte,8bit), 存储的基本单元称为字(word,32/64bit)
unsigned int 可以缩写为 unsigned

一个char的大小和一个机器字节一样,都是确保可以存放机器字符集中任意字符的数字值。

char因机器而异,其实会表现为 unsigned或signed中的一种。

当我们赋给一个无符号类型超出其表示范围的值时,结果是初始值对这个类型所能表示的最大值取模后的余数。

把一个负数转换为无符号数类似于直接给无符号数赋一个负值。

算术表达式的隐式转换:

char,short->int->unsigned->long->float->double。

有符号类型总是转换成同类型的无符号类型。

当我们赋给一个有符号类型超出其表示范围的值时,结果是未定义的。



C++定义的基本内置类型:
算术类型:整型(包括字符、布尔类型)、浮点型(float、double)

空类型

double和float:

double和float都是有符号的。

一个小数等于   尾数 * 2 ^指数。

float的大小是32bit,其中首位是符号位,有8位指数位和23位尾数位,23位二进制可以表示的最大十进制数是7位,所以,float有7个有效位。

double的大小是64bit,其中首位是符号位,有11位指数位和52位尾数位,同理,double有16个有效位。

执行浮点数运算时,选用double,因为,double的精度更高,但计算代价却相差无几,甚至在某些机器上,double更好一些。

字面值常量:

布尔类型的字面值是true和false。

指针的字面值是nullptr。

单引号括起来的一个字符,是char型字面值。

双引号括起来的零个或多个字符是字符串型字面值。

字符串字面值其实是一个由常量字符构成的数组,编译器在每个字符串的结尾处添加一个空字符('\0')

两个字符串字面值紧邻且仅由空格、缩进和换行符分隔,则他们实际上是一个整体。

例如:

cout<<"aaaaaaa"

      "bbbbbbb"<<endl;

在判断字面值的类型时,要确定是前缀还是后缀。

如果转义序列的\后面跟着的八进制数字超过三个,只有前三个数字和\构成转移序列。


本部分遗留问题:

两个字符串字面值紧邻且仅由空格、缩进和换行符分隔,则他们实际上是一个整体。

这两个字符串字面值是一个字符数组么?是以一个'\0'结尾么?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值