c++ primer读书笔记一

先搞清楚little_endian和big_endian,前者是指数据的高位字节存放在内存的高位地址中,低位字节存放到低位地址中,后者则相反。

1)cout<<'abc';输出是一整型值;2)char  c='abc';cout<<c;输出是c(在little_endian下)。

原因如下:

1)前者等价于int i='abc';cout<<i;

二进制:a:01100001 b:01100010 c:01100011

内存存放:(内存地址假设从80开始)

80:01100011 //c

81:01100010 //b

82:01100001 //a

83:00000000 //int型数据占32位 不足补零。

上面的内存内容表示:00000000 01100001 01100010 01100011  即:6382179

 

2)后者和1)很相似。

当字符字面量包含多个单字节字符或者包含了不能够用char表示的字符时(如汉字),则改字面量的整型值为implementation_defined。即1)中所说。所以从6382179转换为char,截取低位8bit即:01100011 即:c。

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值