为什么 putchar(1+'0') 不输出 10?

Elo*_*es1 2 c putchar

为什么 putchar 输出 '1'putchar(1+'0')而不是 '10',但是当仅传递字符参数时,例如putchar('0'),它会输出它。

对于putchar(1+'0'),我预计输出为 10。

Tom*_*mmy 7

putchar根据名称,始终仅输出单个字符。

\n

'0'是单个字符文字。0所以它\xe2\x80\x99是一个整数值,代表计算机中的字符\xe2\x80\x99s编码\xe2\x80\x94几乎肯定是ASCII。

\n

1+'0'那么字面上的意思是 \xe2\x80\x9c 在我的计算机 \xe2\x80\x99s 编码中紧随其后的字符0(几乎肯定是 ASCII)。这就是性格1

\n

  • @ElormCodes1:关于“和`putchar(4)`输出整数4”:不,它不会,如果“整数4”实际上是指字符“4”。你尝试过吗? (3认同)