【发布时间】:2020-02-22 15:49:56
【问题描述】:
我只需要编写一个简单的程序,其中我有一个随机数的数组,然后我必须对数组做一些事情,然后在最后打印元素。但我不知道这里发生了什么。
首先我想编写一个代码,只是打印元素并在执行其他任何操作之前查看它是否有效。
#include <stdio.h>
int main(void) {
int nums[] = {12, 3, 54, -4, 56, 4, 7, 3};
//.....
for(int i = 0; nums[i]; i++) {
printf("nums[%d] = %d\n", i, nums[i]);
}
return 0;
}
结果是:
nums[0] = 12
nums[1] = 3
nums[2] = 54
nums[3] = -4
nums[4] = 56
nums[5] = 4
nums[6] = 7
nums[7] = 3
nums[8] = -427200144
nums[9] = 32765
我多次运行代码,第 8 和第 9 个元素总是有点随机......但我的意思是我什至没有那么多数字,这里有什么问题? 我也尝试了其他随机数,有时效果很好......
int nums[] = {2, -10, 64, 100, 22, 4};
nums[0] = 2
nums[1] = -10
nums[2] = 64
nums[3] = 100
nums[4] = 22
nums[5] = 4
有人能解释一下这里发生了什么吗?
编辑:同时我意识到这个方法很糟糕,因为如果数组中的数字是 0,那么我的条件是假的,所以 for 循环停止,但我很好奇,这里发生了什么,所以我还是要发布这个.
【问题讨论】: