C語言的數(shù)組問題
#include?<stdio.h> int?main() { ????//第一種形式 ????int?arrFirst[3]?=?{1,2,3}; ????//第二種形式 ????int?arrSecond[1]?=?{1,2,3}; ????//第三種形式 ????int?arrThird[3]; ????//給arrThird數(shù)組每個元素初始化 ????arrThird[0]=1; ????arrThird[1]=2; ????arrThird[2]=3; ????//輸出第一個數(shù)組中的第二個元素 ????printf("%d\n",arrFirst[1]); ????//輸出第二個數(shù)組中的第二個元素 ????printf("%d\n",arrSecond[2]); ????//輸出第三個數(shù)組中的第二個元素 ????printf("%d\n",?arrThird[3]); ????return?0; } 輸出的結(jié)果為什么會是 2 4195392 0
2016-10-24
因為數(shù)組的下標均以0開始,所以arrThidr[1]代表第2個元素,輸出2;
數(shù)組在初始化的時候,數(shù)組內(nèi)元素的個數(shù)必須不能大于聲明的數(shù)組長度,而第二種形式卻恰恰相反,導致出現(xiàn)錯誤代碼;
數(shù)組的下標均以0開始,arrThidr[3]代表第4個元素,超出范圍,用0代替。
2016-05-07
arrFirst[1]指arrFirst數(shù)組的第二個數(shù),{1,2,3}也就是劃線的這個數(shù);
arrSecond[2]是arrSecond數(shù)組的首地址+2的地址所在內(nèi)存位置存儲的數(shù)據(jù),因為arrSecond定義的長度不對(比實際小),所以訪問這個數(shù)據(jù)是內(nèi)存中改位置已經(jīng)保存的數(shù)值,這個結(jié)果是不確定的,跟著這個位置存儲的數(shù)值變化而變化;
arrThird[3]這個數(shù)組項沒有初始化,所以被默認賦為0。