我的代码看起来像这样:
void main() { int vect[10], i; for (i=0; i<5; i++) vect[i] = i*2; printf("Vector: "); for (i=0; i<10; i++) printf("%d ", vect[i]); printf("\n");
执行时,它总是会显示这种输出:
为了让它只显示我输入的元素(前五个; 0 2 4 6 8)我必须使用一个计数器,或者有一种方法告诉它只显示那些元素?
元素5,6,7和9总是相同但第8次每次都改变是有原因的吗?我重写了程序以改变它如何显示元素,它是以相同的方式:它显示我输入的五个元素,然后三个保持不变,然后每次执行程序时更改,然后是最后一个常量.为什么是这样?
int vect[10]
索引5-9未初始化 - 您需要为它们分配一些内容,否则它们(可能)将返回垃圾,因为这是未定义的行为(C99标准,第5.1.2节"执行环境").您还可以定义vect
为static,即static int vect[10]
,因为静态变量将自动初始化为0,而静态int数组将自动初始化为0.