【发布时间】:2014-03-14 21:47:09
【问题描述】:
我正在阅读 this tutorial 关于调试的信息。我将阶乘代码粘贴到我的 .c 存档中:
#include <stdio.h>
int main()
{
int i, num, j;
printf ("Enter the number: ");
scanf ("%d", &num );
for (i=1; i<num; i++)
j=j*i;
printf("The factorial of %d is %d\n",num,j);
}
当我运行可执行文件时,它总是打印0,但是,教程的作者说它返回数字垃圾值。我已经用谷歌搜索了这个,我读到这是正确的,除了静态变量。所以它应该返回一个垃圾号而不是0。
我认为这可能是由于 C 的不同版本,但指南是 2010 年的。
为什么我总是看到0,而不是垃圾值?
【问题讨论】:
-
打印
0,并不意味着它不是垃圾值。如果那块内存之前包含0,那么它的垃圾值将是0。你不应该依赖它。
标签: c undefined-behavior