c語言 數(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)致混淆,因?yàn)楫?dāng)您說“數(shù)組中的第一個元素”時,實(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]是相同的。但是,在實(shí)際編程中不應(yīng)該這樣做,原因有以下兩個:第二,這種方式偏離了C語言的傳統(tǒng)風(fēng)格。
為什么數(shù)組的下標(biāo)要從0開始?
你好,我是[你,你,不要逃避],我很高興為你回答。因?yàn)樵趨R編和機(jī)械代碼中,我們都從0開始計數(shù)和索引,二進(jìn)制計算也很方便。下標(biāo)理解為偏移量,即對數(shù)組的訪問理解為基址(第一個元素的地址)的偏移量;當(dāng)偏移量為0時,表示對第一個元素的訪問。例如:1。如果在內(nèi)存中應(yīng)用了一個數(shù)組,則應(yīng)用的內(nèi)存是一個連續(xù)的內(nèi)存地址。如果int[]a=New int[3];如果應(yīng)用int數(shù)據(jù)類型的數(shù)組,則a表示變量,數(shù)組長度為:[3];3。數(shù)組應(yīng)用的內(nèi)存地址是連續(xù)的(假設(shè)應(yīng)用的第一個內(nèi)存地址是1008,第二個是1009,第三個是1010);,但我們只知道:1。變量:A,它只獲取第一個內(nèi)存地址1008;2。它的數(shù)組空間是3;4。A[0]-獲取的內(nèi)存地址A:1008 0=1008(指向第一個內(nèi)存地址);A[1]-獲取的內(nèi)存地址:1008 1=1009(指向第二個內(nèi)存地址);A[2]-獲取的內(nèi)存地址:1008 2=1010(指向第三個內(nèi)存地址);更專業(yè)的科學(xué)知識,歡迎關(guān)注我。如果你喜歡我的回答,也請給我表揚(yáng)或轉(zhuǎn)發(fā),你的鼓勵是支持我寫下來的動力,謝謝。
數(shù)組下標(biāo)為什么從0開始而不是從1開始?
您可以將數(shù)組變量視為指針,將數(shù)組下標(biāo)視為地址偏移量。
因?yàn)閿?shù)組第一個元素的地址偏移量必須為0,所以數(shù)組下標(biāo)從0開始
下標(biāo)是指數(shù)組元素的索引號,VB默認(rèn)為0,對于您的數(shù)組
dim a as variant
a=數(shù)組(1,2,3,4)
a(0)是指第一個元素,其索引號為0,它的值是1
excel數(shù)組的默認(rèn)值是從0開始的事實(shí)上,數(shù)組通常是我們自己定義的。我們也可以從1,2,3中定制它們