关于单引号,

看《c陷阱与缺陷》,1.5节,有介绍单引号的。想看看在c++中的情况,在网上搜了下,做了测试。

环境:win7,vs2013.

大致说的是,单引号括起来的是给整数的等价。整型数一般是32位(应该是和程序所选的编译选项有关,32位程序,64位程序?)。

测试的结果是单引号内括的要是超过四个字节则报错。另一方面,在接收的变量类型上,如果接收的不够后面字符常量的字节,不同编译器处理方式不同,有的是忽略后面的,而vc这个则明显是后面的依次覆盖前面的。测试代码如下:

int a1 = '\1\0\0\0';//1
int a2 = '\0\1\0\0';//256
int a3 = '\0\0\1\0';//65536
int a4 = '\0\0\0\1';//16777216

int b1 = 'abcd';//1633837924:0x61626364
int b2 = '\\\\t';//7625820:0x745C5C

short c1 = 'ab';//24930:0x6162
short c2 = 'abc';//25187:0x6263,bc的ascii值
short c3 = 'abcd';//25187:0x6364,cd的ascii值
//short e1 = 'abcde';//error C2015: 常量中的字符太多//HACK 这个常量是给什么概念?

char cd1 = 'abcd';//'d'
putchar(b1);//'d'

double d1 = 'abcd';//1633837924.0000000
//double d2 = 'abcde';//error C2015: 常量中的字符太多

转载于:https://www.cnblogs.com/xiarl/p/3419076.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值