Chinaunix
标题:
int x='abcd', x为什么为:0x61626364?
[打印本页]
作者:
lsupper
时间:
2012-03-09 16:28
标题:
int x='abcd', x为什么为:0x61626364?
int x='abcd', x为什么为:0x61626364?
并且x最多只能取4个字符...你想int x='abcda',会编译出错:
error C2015: too many characters in constant
测试平台:WIN32
作者:
懒蜗牛Arch
时间:
2012-03-09 16:35
lz想说什么……
x是个int型,你想让他等于什么?
作者:
bruceteen
时间:
2012-03-09 17:02
1。什么内容却决于你的编译器,这属于平台实现,标准没有强制规定
2。因为你的int只占4个字节
作者:
lsupper
时间:
2012-03-09 17:32
回复
2#
懒蜗牛Arch
你随便写个helloworld,写一条语句:
int x='abcd';
printf("%x\n",x);
看下结果,知道为什么吗?
作者:
lsupper
时间:
2012-03-09 17:33
回复
3#
bruceteen
我就以为有什么规定或者什么规则呢?
作者:
懒蜗牛Arch
时间:
2012-03-09 18:25
回复
4#
lsupper
61626364依次是abcd的ascii码呀(16进制),这还有啥可为什么的?
不过这么赋值,不知道有没有具体的规范定义,我觉得是不合理的。
作者:
lsupper
时间:
2012-03-11 21:49
回复
6#
懒蜗牛Arch
汗,你自己去查查ASCII码表的61 62 63 64是多少..看仔细...
作者:
hbmhalley
时间:
2012-03-11 22:20
回复
7#
lsupper
笑而不语
作者:
懒蜗牛Arch
时间:
2012-03-12 10:03
回复
7#
lsupper
我还特意括号注明了是“16进制”…………还是你仔细去看看吧
作者:
lsupper
时间:
2012-03-23 21:30
回复
9#
懒蜗牛Arch
嗯,我的粗心...
作者:
slucx
时间:
2012-03-23 22:24
hbmhalley 发表于 2012-03-11 22:20
回复 7# lsupper
作者:
光速
时间:
2012-03-23 22:35
x就占4个字节,你要让它占5个字节,编译器当然要报错了
作者:
lsupper
时间:
2012-03-25 19:15
回复
12#
光速
这个明白,我主要对能那样赋值,并且对赋值结果疑惑 呵呵
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2