1樓:匿名使用者
這是c和c++規定,vb預設也是從0開始。這是因為在使用陣列元素,如a[i]時,是需要計算該元素在記憶體中的位址,為陣列的起始位址a,加上i個元素的偏移量,即a[i]的位址為a+i*元素型別的大小。當i=0(即下標為0)時,陣列的最開始的元素所在位址,就是陣列的起始位址。
即a[0]的位址,就是a這個陣列名。
2樓:匿名使用者
為了方便程式設計,也為了思路不被打亂。
3樓:匿名使用者
這個問題的主要原因是因為c語言是符合了組合語言的形式,當然也並不是所有的語言中的陣列下標都是從0開始的,在組合語言中通過基址變址方式定址,通過記憶體偏移量來取得相應的陣列中的數值,因為陣列中第乙個元素與陣列的偏移量為0 因此,為了方便起見,下標採用從0開始
4樓:匿名使用者
便於查詢陣列中的元素。
為什麼陣列下標從0開始而不是從1開始?
5樓:匿名使用者
陣列是一段連續的空間,要求a[i]就是求它
的位址,然後找到它。如果從0開始,則a[i]的位址= 首位址 + i*每個資料所佔的長度;如果從1開始,則a[i]的位址= 首位址 + (i-1)*每個資料所佔的長度。
是不是前一種更好計算呢。
為什麼陣列的下標要從0開始
6樓:匿名使用者
為了更好理解,我們舉個例子:
1、陣列在記憶體中申請是,所申請的記憶體是一段連續的記憶體位址;
為什麼陣列下標要從0開始
7樓:匿名使用者
乙個陣列的基位址是該陣列的第乙個元素位址,沒有要求
說下標必須從零開始,他們可以從任何乙個數開始,只要是連續的就可以,但是起始下標是零比較方便討論,因此我們一般都讓陣列從下標零開始,除非有很好的理由不這麼做。
8樓:匿名使用者
好計算位址偏移,你要是懂c語言就比較明白了。
9樓:匿名使用者
c語言的編譯器說從陣列從第0個開始,c語言就從第0個開始了。
10樓:
matlab中陣列下標從1開始
陣列下標都是從1開始的,為什麼說成是從0開始的呢?
11樓:仁昌居士
陣列下標說成是從0開始的是因為如果從1開始編號,每次隨機訪問陣列元素都多了一次減法運算,對於cpu來說,就是多了一次減法指令。陣列作為非常基礎的資料結構,通過下標訪問陣列元素又是其非常基礎的程式設計操作,效率的優化就要盡可能的做到極致。從0開始,可以減少一次減法操作。
12樓:匿名使用者
下標是指數組元素的索引號,vb預設是0,對於你的陣列dim a as variant
a=array(1,2,3,4)
a(0) 指第乙個元素,它的索引號是0,它的值是1
13樓:匿名使用者
option base 指定下標。一般是0或者是1.
儲存單元為什麼從0開始編址?c語言陣列下標為什麼要從0開始?
14樓:幻夢·人生
以陣列為例,陣列是使用連續的儲存空間儲存資料。
int a[4] = ;
陣列名a代表的就是這個儲存版空間的首位址。
1儲存的權位置就是儲存空間的首位址。
而2儲存的位置就是首位址加上1個int型所需空間的位址。
以此類推
所以a[n]元素的位址,實際上就是a的位址,加上n個元素的所佔空間大小
a[n]位址 = a位址 + sizeof(int) * n;
綜上所述,陣列的下表可以理解為距離首位址的偏移量。
所以第乙個元素距離首位址的偏移量為0;因為第乙個元素的位址,就是首位址。
15樓:牛津字典喝芬達
計算機中採用二進位制,不考慮符號的情況下最小數是"0x0000",所以在計算機中起始位置都是從0開始的
陣列下標為什麼從0開始而不是從1開始?
16樓:愛上榛子的核桃
你可以把陣列變數看成指標,陣列下標看成位址的偏移量。
因為陣列第乙個元素的位址偏移量一定是0,所以陣列下標就是從0開始了
17樓:匿名使用者
老大,這個問題也要問。非要懂得資料結構的人才能回答嗎?
想想就很明白了。
以下假設陣列下標是從1開始的:
如果你定義
int a[100];
那麼你在使用的時候用到第100個元素a[100]的時候,請問編譯器如何能分辨你這裡的a[100]和你定義的a[100]有什麼區別呢?
假設到此為止。
現在如果你下標是從0開始的,那麼a[0] - a[99]是元素,怎麼都不可能和定義的a[100]出現名字衝突,編譯器就很容易識別了。
就這麼簡單的問題~~~
18樓:匿名使用者
也可以從1開始啊,可能與0是最小自然數有關吧…
19樓:匿名使用者
鑽語法的牛角尖沒啥意思、
語法是規定好的
就像球只能進別人的門,進自已的裁判就要吹了
20樓:小雲
為什麼「1+1」答案是2,不是3?規定的唄,同樣的道理,陣列下標也規定從0開始。
程式設計常識13:陣列索引陣列下標為什麼要從0開始
21樓:追憶小土豆
為了更好理解,我們舉個例子:
1、陣列在記憶體中申請是,所申請的記憶體是一段連續的記憶體位址;
為什麼陣列角標從0開始
22樓:金色潛鳥
陣列下標 從幾開始,是由 語言本身規定的。
c/c++ 語言 從 0 開始。
fortran 語言 從 1 開始。
也有些語言允許 自己設定 範圍。
各有各的道理。
在C程式的陣列中為什麼下標要從0開始呢?從1開始不行嗎
可以,但是浪費了記憶體 比如開闢100個儲存,int array 100 是從0 99,而你是從一開始,必須是int array 101 了,之所以下標從0是因為pc的記憶體他的硬體實實在在就是從0位址開始索引的 陣列的位址與第乙個元素的位址相同,下標為多少也就是指偏移量為多少的位址,所有0開始比較...
java為什麼陣列下標從0開始,java的陣列是從零開始還是從壹開始的
陣列下標實際上是偏移量。a 0 和 a所指的都是第乙個元素。a 1 a 1 所以就有了從零開始的說法。java的陣列是從零開始還是從壹開始的 陣列下標是從0 開始的 都是從0的,沒有1的 只要記得陣列下標越界異常 就知道從0開始的 1 從0開始哈!親,你可以自己定義乙個陣列,假設int a 2 你列...
陣列下標為什麼從0開始而不是從1開始
你可以把陣列變數看成指標,陣列下標看成位址的偏移量。因為陣列第乙個元素的位址偏移量一定是0,所以陣列下標就是從0開始了 老大,這個問題也要問。非要懂得資料結構的人才能回答嗎?想想就很明白了。以下假設陣列下標是從1開始的 如果你定義 int a 100 那麼你在使用的時候用到第100個元素a 100 ...