注册 登录
编程论坛 C++教室

什么意思?

haiyungood 发布于 2008-10-14 16:49, 607 次点击
#include <iostream>
using namespace std;
int main()
{
    char c1='a',c2='b',c3='c',c4='101',c5='116';
    cout<<c1<<c2<<c3<<'\n';
    cout<<"\t\b"<<c4<<'\t'<<c5<<'\n';
    return 0;
}
这个程序运行的结果是:
abc
        A     N
问一下各位这个c4和c5怎么会成A和N?是什么意思了?101和116对应的ASCII码为e 和t 。先谢谢各位了。
2 回复
#2
守鹤2008-10-14 17:08
[bo][un]haiyungood[/un] 在 2008-10-14 16:49 的发言:[/bo]

101和116对应的ASCII码为e 和t 。

若想输出e和t,则应这样定义
char  a=116,b=101;
#3
debroa7232008-10-14 22:47
对char赋值,可以用一个字符,也可以用一个整形,如果使用如'101'来赋值,编译器会如何取这个常量来赋值,不同编译器是有不同的,在我的机子上运行时,看汇编如下:
    char c4='101';
00411E6A  mov         byte ptr [c4],31h
    char c5='116';
00411E6E  mov         byte ptr [c5],36h
    char c6='139';
00411E72  mov         byte ptr [c6],39h
看上面的代码,编译器是取了单引号里最后一个字符赋值给了变量.在你的编译器上得到的是A和N,你可以打开反汇编窗口看看编译器把'101'取值为什么了.
1