陣列的下標為什麼從0開始

2021-10-25 09:09:15 字數 445 閱讀 8655

關於陣列的下標為什麼從0開始,我想這是許多初學陣列的同學所疑惑的,在此我發表一些我的看法。

首先假設我要定義乙個int a;相信大家對這個還是比較容易理解的,這個時候系統自動為a分配2個位元組的儲存空間(有的編譯器是4個 一般是兩個),a無可厚非,指的就是那兩個位元組的空間,如果要給a賦值的話,直接a=2;就好了。這個時候a是乙個變數,也就是說a可以等於2也可以等於別的。

如果我定義乙個int a[3];這個時候a就不是變數了,而是乙個指標,而且要訪問陣列的話是從a[0]開始的。是這樣的,你不是要申請3個int型別的變數嗎,那麼問題來了,你這裡只有乙個a,這個a到底指的是哪個變數,所以吧a當做變數就不合適了,這個時候的a是乙個指標,它指向所申請連續空間的首位址,當想要隨意訪問陣列時,只需要用目前的位址加乙個數,往後訪問幾個就加幾,別的不說了,如果想要訪問第乙個,就要加0,因為指標就指向第乙個,後面的類推,這也解釋了為什麼陣列下標要從0開始。

為什麼C陣列下標從0開始,而不是從1開始

對於學習過程式語言的人來說,相信絕大多數人都會有這樣的疑問 我們平時計數,通常是從一開始計數的,為什麼在程式語言中,陣列的下標是從0開始計算的呢?這是因為,c語言中,下標的含意是 當前元素到第乙個元素的偏移量。第乙個元素的下標自然就是0,第二個元素的下標為1,第n個元素的下標為n 1。這樣處理能帶來...

陣列下標為什麼是從0開始的,而不是1?

為了更方便計算記憶體位址 陣列 array 是一種線性表資料結構。它用一組連續的記憶體空間,來儲存一組具有相同型別的資料 線性表 按線性結構儲存 依次儲存 陣列,鍊錶,佇列,棧都是經典的線性表 連續記憶體空間和相同資料型別 真是因為有這兩個限制才會有隨機訪問這個性質的。我們來看看int型別長度為10...

今天老大問大家為什麼陣列的索引從0開始?

之前關於陣列的索引為甚麼從0開始?有很多說法 1 下標的含意是 當前元素到第乙個元素的偏移量。第乙個元素的下標自然就是0,第二個元素的下標為1,第n個元素的下標為n 1。2 計算乙個陣列元素的位址需要將陣列的起始位址加上該元素的索引。將起始索引設為1要麼會浪費陣列的第乙個元素的空間,要麼會花費額外的...