C语言输入整型变量时,需要用到scanf函数,形式为
scanf("%d",&a);
即读入一个整型变量,并将值赋值给a。
执行该操作时,scanf会到输入中,读取字符,如果是合法的整型字符(0~9),会根据规则计算值并存入到a中。当遇到非数字字符时结束。
所以,如果系统要求读入整型时,输入了非数字字符,那么scanf就无法得到有效值并赋值给a,这时scanf会出错,对a不做处理,同时以返回值方式报错。
输入之后不会存入对应的内存区域,相当于没输入
你可以用下面代码去测试:
#include "stdio.h"
int main()
{
int a=0;
scanf("%d",&a);
printf("%d\n",a);
}
如果你输入字符a,
那么输出就是0,可以看到,int变量a的值没有被scanf函数改变,也就得出上面的结论。
变量的值取默认值,没有变化。
应该是一个不确定的数(有可能是输入字符的地址(猜))
你试一试不就知道了