【发布时间】:2018-04-06 18:06:59
【问题描述】:
现在我正在写代码....
#include <stdio.h>
int main()
{
int c;
printf("I'm waiting for a character: ");
c = getchar();
printf("I waited d for the '%c' character\n", c);
return 0;
}
如您所见,我已将 c 声明为整数,因此该值应在 0-9 之间,但接下来的第 3 行我只使用了 char 类型值的 printf() 转换字符。不知何故,它奏效了!!!那么让它发挥作用的原因是什么?
【问题讨论】:
-
为了让它更有趣,请尝试将 printf 行更改为
printf("I waited for the %d character\n", c);。 -
“int”只是一个整数,可能介于 -2147483648 和 +2147483647 之间,具体取决于您的平台。 getchar() 返回一个整数。 %c 导致 printf() 打印具有该值的字符。毕竟,字符和其他事物一样只是数字。
-
"该值应该在 0-9"。该值在
'0'到'9'中。请注意'0'的类型为int。在典型(但并非总是)使用的 ASCII 系统中,字符'0'的值是48,而不是0。
标签: c