Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么C循环增量的结果是随机的_C - Fatal编程技术网

为什么C循环增量的结果是随机的

为什么C循环增量的结果是随机的,c,C,作为C语言初学者,我编写了一个循环演示程序。 但结果总是随机的,我想知道原因 代码: #包括 int main(){ int-num; 而(1000000>num){ num++; } printf(“num%d\n”,num); 返回0; } 结果: gcc main.c-o main >/主要 编号324399570 >/主要 数字166920658 >/主要 编号354193874 gcc版本:稳定的9.2.0(瓶装)因为 int num; 不等于0。 我也在C++中找到了; 编译时

作为C语言初学者,我编写了一个循环演示程序。 但结果总是随机的,我想知道原因

代码:

#包括
int main(){
int-num;
而(1000000>num){
num++;
}
printf(“num%d\n”,num);
返回0;
}
结果:

gcc main.c-o main >/主要 编号324399570 >/主要 数字166920658 >/主要 编号354193874 gcc版本:稳定的9.2.0(瓶装)

因为

int num;
不等于0。
我也在C++中找到了; 编译时应该有一个关于使用未初始化变量的警告。将其更改为:

#包括
int main(){
int num=0;
而(1000000>num){
num++;
}
printf(“num%d\n”,num);
返回0;
}

替换
int num
int num=0

因为您应该在使用前初始化变量,否则该变量将具有垃圾值。

您不初始化
num
;你会得到一个准随机的起点。在循环之前打印它,看看为什么会出现废话。试试:
intnum=0它不是随机的,它是任意的。
num
的值可以是任何值。您不能假设它是0或不是。例如,一致性实现可以始终将其设置为42。@KeithThompson或格式化硬盘驱动器,或永远运行,只要您是正确的,并且我在编译时没有收到任何警告。你知道什么gcc选项会让gcc提示这样的错误吗?@Joanner使用
-Wall
获取警告。如果希望警告导致生成失败,请添加
-Werror