【发布时间】:2013-03-13 04:34:30
【问题描述】:
我正在处理以下代码:
#include<iostream>
#include<stdio.h>
using namespace std;
main() {
unsigned char a;
a=1;
printf("%d", a);
cout<<a;
}
它正在打印 1 和一些垃圾。
为什么cout 会这样?
【问题讨论】:
-
unsigned char不是int。你为什么告诉printf它是? -
将二进制 1 发送到 stout 会有什么期望?
-
@chris
unsigned char将在 printf 调用中提升为unsigned,因此该代码是可以接受的。 -
@john,啊,我真傻。我认为有一个 unsigned char 因为 char 之一,但这最终没有任何意义。感谢您清理它。
-
前 32 个字符代码为控制代码,不可打印