问题描述
int main()
{
int i= 0;
printf("i value is %d\n",i);
scanf("%c",&i); // I am giving an input of 255 here
printf("i after scan %d\n",i); // This prints 50. How???
return 0;
}
有人可以解释一下printf语句如何给出50?我有一台小端机。
解决方法
由于未声明I
,因此您的程序甚至无法编译。我假设这是一个错字。由于您正在扫描%c
,因此它将仅读取一个字符,即255中的2。现在2的ASCII码为50,正在打印。