关于c++中字符变量的·问题:char i='abcd';怎么把abcd这个字面量赋给一整型变量?他是怎么赋值的?
我不懂的是char这个变量,如何用abcd在内存中保存,书上说是把他对应的编码值存储在一个int字节里,但这有四个字符,怎么存储?书上说“通常在int值的后续字节中放置字...
我不懂的是char这个变量,如何用abcd在内存中保存,书上说是把他对应的编码值存储在一个int字节里,但这有四个字符,怎么存储?书上说“通常在int值的后续字节中放置字符的一字节编码”?这是什么意思?
展开
3个回答
展开全部
第一次没看懂你说什么,但是觉的你说的东西很有意思,我再自已的电脑上试了一次之后就知道了。
'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' 了。那我很高兴可以帮到你。
如果你没有看懂,我抱歉帮不了你,希望你继续学习,你一定可以依靠自已的力量解决这个问题的。
'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' 了。那我很高兴可以帮到你。
如果你没有看懂,我抱歉帮不了你,希望你继续学习,你一定可以依靠自已的力量解决这个问题的。
展开全部
单引号括起来的字符串,实际为16进制的int型整数常量。
char i='abcd',a的ASCII码为61,所以相当于char i=0x61626364,而由于char只有一个字节,所以i=64,如果你用的是int i =0x61626364,那么结果就是1633837924
char i='abcd',a的ASCII码为61,所以相当于char i=0x61626364,而由于char只有一个字节,所以i=64,如果你用的是int i =0x61626364,那么结果就是1633837924
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unsigned int j=('a'<<24)+('b'<<16)+('c'<<8)+'d';
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询