為什麼陣列可以不以第零項開始是乙個錯誤的功能?

時間 2021-05-31 11:08:46

1樓:暮無井見鈴

可以參考下 Dijkstra 的說法。

不過我覺得 Pascal 的靜態陣列可以任選起始下標這點挺好的。

2樓:郭建波

我認為的一些觀點:

1、如果進行求餘運算的話會產生0這個數字,如果陣列下標從1開始,則我們需要單獨考慮當等於0的時候的情況,使問題變得複雜。

2、當我們用指標來訪問資料的時候,陣列元素的位址為:P +0、 P+1、P+2、P+3..... P+n.

n就代表陣列的下標。 如果我們陣列下標從1開始,則成為P+0、P+1、P+2、P+3..... P+n, 對應陣列的下標就是n+1.

這樣在運算的時候還要想著陣列下標跟位址偏移量之間還差1,會產生很多不必要的麻煩

3、因為之前的程式都是從0開始的,從0開始比較符合記憶體位址的規則,即位址是從0開始的,陣列本身代表的就是一段連續的記憶體,當然如果從0開始會比較符合數學上的計算規則。

《C語言核心30天突破》

3樓:nyycbd

從0開始是因為涉及到偏移量的概念,可以直接與記憶體定址對應,在設計實現的時候可以便利一些。

PS:我覺得有幾個答案談哲學大道理的是神棍。

4樓:

因為這改變了約定俗稱的事情,雖然能用,但已經讓程式設計師不知道自己幹了什麼。出了錯,都不知為啥。就好像你家備用鑰匙放置的地方被老公放在了另外乙個更安全的地方,你知道了好說,不知道就要罵娘了。

廁所的標誌是WC, 被人改成了別的名字,雖然可能更直觀,但肯定被罵豬頭!

為什麼有些程式語言的陣列要從零開始算?

周娛娛雨御與漁 非要問有什麼優勢的話,我給你分享一點思路。陣列 Array 是一種線性表資料結構,它用一組連續的記憶體空間,來儲存一組具有相同型別的資料。因為陣列的儲存結構是一組連續的記憶體空間,所以陣列具有 快速查詢 的特性,支援隨機訪問。陣列根據首位址和下標,實現對元素記憶體的隨機訪問。定址公式...

在《從零開始的異世界生活中》為什麼昴選擇的是艾公尺莉亞?

純動畫黨 486視角 別扯蕾姆殺486是因為魔女 486當時根本就不知道魔女是怎麼回事他只知道自己竭盡全力也只換不來女僕姐妹的信任說真的要是我也委屈死了 另外一點個人想法 emt和蕾姆完全是兩個型別的人 emt天性善良不論對誰都抱有最大的善意蕾姆因為童年經歷只給信任的人無限的包容和鼓勵看自己喜歡哪種...

為什麼一整天的時間是從凌晨零點開始?

漫捲紅旗 古人活動主要在白天,把白天的中間時刻看做一天的中間時刻,也就是中午 往前半天就是一天的開始 往後推半天就是一天的結束 所以以0點作為一天的開始 坦克之怒丶 昨晚睡覺時也想到這個問題,今天就來看看有沒有人給出較好的答案,很遺憾並沒有。個人理解這個情況可能是時鐘的發明和時區的設定,如果以後發展...