我运行了这段代码。
以下是输入和输出内容:
#include <stdio.h>
int main()
{
int u;
scanf("%d",&u);
printf("%d\n",u,u);
return 0;
}
以下是输入和输出内容:
input:a output:32765
input:b output:32765
input:c output:32767
input:/ output:32766
有人能解释一下这个行为吗?
scanf
调用失败,返回0,并且您代码中的下一条语句会执行。这就好像scanf
语句不存在一样。简而言之,由于尝试打印未初始化的变量,您的代码会引发未定义的行为。 - Spikatrix