關于數組的小疑問
#include <stdio.h>
int main()
{
? ? //第一種形式
? ? int arrFirst[3] = {1,2,3};
? ? //第二種形式
? ? int arrSecond[] = {1,2,3};
? ? //第三種形式
? ? int arrThird[3];
? ? arrThird[0]=1;
? ? arrThird[1]=2;
? ? arrThird[2]=3;
? ? //給arrThird數組每個元素初始化
? ? //輸出第一個數組中的第二個元素
? ? printf("%d\n", arrFirst[1]);
? ? //輸出第二個數組中的第二個元素
? ? printf("%d\n", arrSecond[1]);
? ? //輸出第三個數組中的第二個元素
? ? printf("%d\n", arrThird[1]);
? ? return 0;
}
為什么將劃線部分的代碼換成 printf("%d\n",arrSecond[22])
輸出結果為?4195480
而將代碼換成 printf("%d\n",arrSecond[222])
輸出結果為 0
呢?
2016-05-11
一個不確定值。
2015-04-10
那么輸出的這個值是否有一定的規律,或者說計算器優勢根據什么輸出這個值的。為什么是4195480或者0,而不是1,2,3,4,5.....,是否可以從計算機物理上的計算機制或著其他方面解釋。
2015-04-09
arrSecond[22]指的是arrSecond這個數組中第23個元素,你只初始化了前3個元素,第23個是沒有初始化的,輸出的當然是內存中的一個不確定指。