当我运行此程序时,它会在终端中打印一个奇怪的字符。有人能告诉我那是什么吗?
int main(){
char x=1;
printf("%c\n",x);
return 0;
}
答案 0 :(得分:3)
这是因为您要为x
分配1(字符的ASCII值)。将'1'
分配给x
。它将提供输出1
。
char x = '1';
printf("%c\n",x);
答案 1 :(得分:2)
来自ASCII table的打印字符1 (对您的平台做出合理的假设,您不在EBCDIC平台上或其他什么)
答案 2 :(得分:0)
C中的字符通常应使用字符分配,而不是使用ASCII编码。例如:
char x = 'A';
printf("%c\n", x);
将在终端上打印字符“A”。通过给字符指定ASCII索引1,您可以为其指定START OF HEADING字符(SOH)。如果您正在寻找'A'或'1',那将是:
char x = 65; // x = 'A'
char y = '1'; // y = '1'
但就像我说的那样,这是非常尴尬的,需要ASCII记忆来阅读,所以分配数字是非常糟糕的做法。
找到ASCII表答案 3 :(得分:0)
这取决于你想要的输出。如果你认为你的代码给出了一些奇怪的输出,你当然希望'1'作为输出。为此,您应该替换您的陈述
char x = 1;
到
char x = '1';
多数民众赞成!你的问题就解决了!