《C++ Primer》(the fifth edition)上的一个小问题

来源:互联网 发布:小米数据分析 编辑:程序博客网 时间:2024/05/16 14:18

最近看了下《C++ primer 》(the fifth edition),发现里面第2章有地方有问题, 第33页,它说:

signed char c = 256;//假设char占8bit,c的值是未定的。

结果我试了几次,结果都是确定的,我发现结果其实是有迹可循的。

signed char c = 256;//结果是等于0。

这里写图片描述

signed char c = 257;//结果等于1。

这里写图片描述

signed char c = 258;//结果等于2。

这里写图片描述

signed char c = 512;//结果等于0。

这里写图片描述

发现没有,其实结果是有迹可循的,就是发生的高位溢出,8位内存不够存256,11111111 为255,已经存满了,再加一256则发生溢出,变为00000000,再加一257则变为00000001,再加一258则为00000010,加到516,则又变为00000000.所以书上说c的值是未定义的是错误的(可能以前是对的)。

小发现,勿吐槽。

1 0
原创粉丝点击