scanf函数覆盖问题
hfy19 2010-08-05 09:28:59 #include<stdio.h>
int main()
{
int i;char c;
for(i=0;i<5;i++)
{
scanf("%d",&c);
printf("%c ",c);
printf("%d ",i);
}
return 0;
}
linux下 gcc编译运行 输入整数
则改整数会覆盖i的值,
i输出一直为0并形成死循环。
程序源码在《c缺陷与陷阱》p76 解释如下 :字符c存放的是整数的低端部分,每次读入一个数值到c时,都会将i的低端部分覆盖为0。
对解释没理解,知道的大哥给讲下。小弟分数不多,只有在此多谢。