#include
void main()
{
char a;
scanf("%c",&a);
printf("%c\n\n",a);
scanf("%d",&a);
printf("%d\n\n",a);
scanf("%d",&a);
printf("%c\n\n",a);
scanf("%c",&a);
printf("%d\n\n",a);
}
当输入变量为a时得到结果如下
这个输入可能还不好看清结果,我们把输入换成1时得到如下结果
从这个基本可以看出问题了吧~
如果定义变量为字符型,以整型输入的时候实际是以ASCII码的形式输入的。也就是说,如果输入的时候是以整型输入,那么系统会根据ASCII码找输入的这个量对应的是个什么字符。输出的时候也是这个道理,如果以整型输出那么系统输出的是这个字符对应的ASCII码的数值。现在如果输入输出都是整型,那么至少他们对应的是同一个字符,还能正常输出,但是一旦输入输出的不是一个型,那么就找不到对应的ASCII码了,也就不能正常输出了,浮点型也是同样的道理。