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