數(shù)組元素的下標(biāo)可以從1開始 數(shù)組的下標(biāo)應(yīng)該是從0還是從1開始?
數(shù)組的下標(biāo)應(yīng)該是從0還是從1開始?在其他一些語言中,情況可能會有所不同。例如,在basic語言中,數(shù)組a[Max]的元素從a[1]到a[Max],而在Pascal語言中,這兩種方法都是可行的。注意:a
數(shù)組的下標(biāo)應(yīng)該是從0還是從1開始?
在其他一些語言中,情況可能會有所不同。例如,在basic語言中,數(shù)組a[Max]的元素從a[1]到a[Max],而在Pascal語言中,這兩種方法都是可行的。
注意:a[Max]是有效地址,但地址中的值不是數(shù)組a的元素。
這種差異有時會導(dǎo)致混淆,因為當(dāng)您說“數(shù)組中的第一個元素”時,實際上是指“數(shù)組中的下標(biāo)是”。這里的第一個意思與最后一個相反。
由于指針和數(shù)組幾乎相同,您可以定義一個指針,以便它可以像數(shù)組一樣引用另一個數(shù)組中的所有元素,但前者的下標(biāo)從1開始:
/*Don“tdotis
*/
inta0[Max],
int*A1=a0-1/*&a0[-1)*/
現(xiàn)在,a0[0]和A1[1]是相同的,而a0[Max-1]和A1[Max]是相同的。但是,在實際編程中不應(yīng)該這樣做,原因有以下兩個:第二,這種方式偏離了C語言的傳統(tǒng)風(fēng)格。
C語言中,數(shù)組可以從下標(biāo)為1開始賦值嗎?
不
例如,我定義了一個int數(shù)組。
Int arr[10
]在初始化之前,數(shù)組中的每個元素都是不確定的。
如果在VS2010環(huán)境中,我定義了上面的數(shù)組并輸出arr[0],我發(fā)現(xiàn)會有編譯錯誤。你可以考慮數(shù)組的定義
int arr[100]={0}
這樣每個元素都是0
,官方賬號是WeChat。