首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于char!解决方法

2012-02-12 
关于char!chara abc cout a endl输出的是c为什么??[解决办法]呵呵,都到不了汇编层次。编译器直接

关于char!
char   a= 'abc ';
cout < <a < <endl;
输出的是   c
  为什么??

[解决办法]
呵呵,都到不了汇编层次。
编译器直接就把 'abc '转成了一个字符字面常量。
具体编译器怎么转就不知道了

[解决办法]
这是汇编以后的结果,编译器的设置不同生成的代码可能不同。
00401000 /$ 55 push ebp
00401001 |. 8BEC mov ebp, esp
00401003 |. 51 push ecx
00401004 |. C645 FC 63 mov byte ptr [ebp-4], 63 //a=0x63h
00401008 |. 68 60184000 push 00401860
0040100D |. 8A45 FC mov al, byte ptr [ebp-4]
所以说这个问题根本到不了汇编层次
char a= 'abc ',编译器直接生成了字面值常量0x63赋给变量a,在汇编层次上是看不到 'abc '中的其他两个字符。
不过编译器为什么要生成‘c’而不生成 'a '或者 'b '就不清楚了。

热点排行