你在打电话
putchar()
用一个
double
作为一个论点。它将被隐式类型转换为
int
,然后输出该字符。你得到了心,因为出于某种原因,你的角色集有一个心作为3号角色。如果运行它并在
EOF
你会得到一个不同的角色。在我的机器上,你的程序并不是一个心脏,但是如果我输入更多的字符,我可以在下一行得到我想要的任何东西。ASCII字符3是
ETX
,结束文本,所以我不知道为什么你会得到你的心脏在你的情况-你是使用一些奇怪的地方或字符集?这个程序在您的机器上输出什么:
#include <stdio.h>
int main(int argc, char *argv[])
{
putchar(3);
putchar('\n');
return 0;
}
编辑:
你得到的是心,因为这就是你的角色设置在第3位的原因。从
wikipedia
:
在代码页437中,IBMPC的原始字符集,值3(十六进制03)表示心脏符号。该值与非打印ETX控制字符共享,后者在许多上下文中覆盖该值。