以下是引用点线面在2011-2-18 19:14:51的发言:
#include
#include
int main (void) {
char c='\b';
while
(
(c=getch())
*
(((c-' ')&&putchar(c))|1)
*
(c-13)
);
getch();
return 1;
}
大家继续编译一下这个程序有没有问题
呵呵呵呵,楼主啊,你应该把char c = '\b';改成char c = 'a';//这里的'a'是随便什么一般字符都可以
运行结果说明一个问题:编译器将putchar()提到了整个循环的外面(这就应该是优化的结果了)!
在楼主前面的程序中,由于没有给变量c赋值,那么按照老朱(我)的说法,c变量中应该是“垃圾数据”,所以才会出现一开始输出乱字符(我看到的是汉字)的情况!
这个帖子可以结了!