為什麼程式設計裡的排序都是從0開始而不是從1開始

時間 2021-05-30 04:01:38

1樓:salt

既然問到了就回答一下。

因為計算機跟我們的常識不一樣,我們人習慣性從1開始數數,而計算機都是從零開始的,例如陣列的下標是從零開始的,排序用到陣列,你如果從1開始就少排乙個數

2樓:corner

首先並不全是,從0開始是方便用位址理解。

例如定義乙個int table[5]

假設它的首位位址為0x0000a0

那麼下一位是0x0000b0

也就是第一位是0x0000a0+f*0,

第二位是0x0000a0+f*1

這裡的0和1就用作陣列的索引了

3樓:齊浩天

比如 4 * 4 二維陣列 A, 假設其在記憶體上時連續的且起始位置對應記憶體中的 32.

那麼他的位址範圍是 32 ~ (32 + 4 * 4) = 48.

現在我要查詢第 2 行第 2 列的元素, 目標元素是線性空間中第 5 個元素, 則真實位址為 37.

如果使用以 0 開始的索引方式 , 並且引用方式為 A[1][1]:

如果使用以 1 開始的索引方式, 並且引用方式為 A[2][2]:

4樓:愛凡線上

你可以把陣列第一位留空,然後從1開始。

程式是人設計的,每人有自己的思路和想法,這些不要計較。

在很多演算法裡面,從0開始會比1要神奇。

5樓:d41d8c

先問是不是,再問為什麼

C/C++ 陣列的下標為何要從 0 開始,而不從 1 開始;為什麼有些程式語言的陣列要從零開始算?;為什麼計算機好多計數從零開始而不是從一開始?

計算機陣列為什麼從0開始而不是從1開始?

因為下標的本質是偏移量啊.是用來定址的.計算機裡這個手法多如牛毛啊 如果自己連這個都悟不出來,那可能真的不適合吃這碗飯啊 你的唐長老 從1開始會造成硬體低電位狀態的大量浪費 或者你如果非要用硬體的0表示1,那你就會在任何計算之前都要加一段加法器操作,複雜度太恐怖了。 顧左右不言他 二進位制的鍋,因為...

為什麼程式語言對非同步程式設計都是很晚近才開始支援的?

winter 其實async和await並不是所謂的 非同步 而是用同步的語法形式寫非同步的一種語法支援。所以如果我們要談非同步,那麼async await只是其中非常小的一部分內容。 打乎 多少跟和網際網路的發展有關吧,網際網路剛發展起來那會,哪有人會想到現在的那麼大的高併發,大量流量,大資料,這...

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

In most programming language,the name of any array is a pointer,which is nothing but a reference to a memory location,and so the expression array n po...