关于c++中字符变量的·问题:char i='abcd';怎么把abcd这个字面量赋给一整型变量?他是怎么赋值的?

我不懂的是char这个变量,如何用abcd在内存中保存,书上说是把他对应的编码值存储在一个int字节里,但这有四个字符,怎么存储?书上说“通常在int值的后续字节中放置字... 我不懂的是char这个变量,如何用abcd在内存中保存,书上说是把他对应的编码值存储在一个int字节里,但这有四个字符,怎么存储?书上说“通常在int值的后续字节中放置字符的一字节编码”?这是什么意思? 展开
 我来答
anjiao_1989
2011-02-12 · 超过14用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:30.7万
展开全部
第一次没看懂你说什么,但是觉的你说的东西很有意思,我再自已的电脑上试了一次之后就知道了。
'a' 保存为char
'ab' 保存为int
'abc' 保存为int
'abcd' 保存为int
'abcde' 错误“常量中的字符太多”
可以这样理解:被单引号包含的值会被解试为常量,解试的规则就如上面所显试的,你一定能看明白。

在大多数PC机中:
'abcd'在内存中保存为 'd' 'c' 'b' 'a'
"abcd"在内存中保存为 'a' 'b' 'c' 'd' '\0'
这是一个规则,如果你已经知道,那就太好了,如果现在还不知道,以后学习多了也会知道。

如果你看懂了上面,就明白了为什么 “char i = 'abcd'; // i” 值为'd' 了。那我很高兴可以帮到你。
如果你没有看懂,我抱歉帮不了你,希望你继续学习,你一定可以依靠自已的力量解决这个问题的。
羊羊说历史
2011-02-12 · TA获得超过173个赞
知道答主
回答量:87
采纳率:100%
帮助的人:95.4万
展开全部
单引号括起来的字符串,实际为16进制的int型整数常量。
char i='abcd',a的ASCII码为61,所以相当于char i=0x61626364,而由于char只有一个字节,所以i=64,如果你用的是int i =0x61626364,那么结果就是1633837924
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
安迪姣姣Ap
2011-02-25
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
unsigned int j=('a'<<24)+('b'<<16)+('c'<<8)+'d';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式