為什麼大多數程式語言中陣列的第乙個元素的索引不從 1 開始?

時間 2021-05-08 20:22:14

1樓:漁父

因為對模運算太不友好了,什麼事都得想著 +1,Matlab 用的我想死,結果 Julia 還這麼設計。

autoi=

k%quarter

;auto

result

=complex_t

>;這個 C++ 怎麼翻譯成 Matlab/Julia ?

k 是個模 quarter 的週期變數,quarter - i 是 quarter 下 i 的補,在 0 索引下非常自然。在 1 索引下就得想著 +1。i=

k%quarter

result

=ComplexF32

(Ωcos[1

+i],i

≠1?Ωcos[1

+quarter-i

]:0)

2樓:rhanqtl

下標用於表示偏移量(因此轉換成計算機內部表示更方便、快速),另外使用半閉半開區間時計算(子)陣列長度也比較方便。

可以讀一下 Dijkstra 的文章 Why numbering should start at zero

3樓:

因為。 C語言中陣列名可以近似看成乙個指標。它指向陣列第乙個元素。

陣列名[0] 等價於 *(陣列名+0)

第二個元素可以用當前指標加1來表示。所以索引是代表指標的偏移量。

可能其他語言繼承或者接受了C語言的用法,I guess.

為什麼大多數組合是三男一女?

維多多 我覺得多出來的乙個女的多半是硬拉來的吧,玩樂隊和組合本來就是男的占多數,女的玩的好的很少,打著燈籠能找到乙個女性高手就趕緊拉進來了 和子 應該是因為敢於去闖蕩的男生較多,女生較少,都是男生也沒有看頭,所以和另乙個敢於闖蕩的女生組合在一起。當然不能以偏概全,畢竟還有一些女生組合一起出道的。撓頭...

為什麼大多數程式語言被設計成函式只有乙個返回值,而不是多個?

卞舒言 多值返回其實很常見了,但很多時候也沒有什麼必要,你看scheme的主流實現都支援多值返回了,你見過幾個用到這個特性的scheme程式?因為本身在scheme裡表結構就已經過於強大。不過話又說回來,去了解一下amb求值的想法吧。 劉強 因為函式只是處理乙個乙個問題的過程,其實我們只需要知道處理...

CNC大多數都是用什麼軟體程式設計的?

zoroer2009 本人用的ug,因為編刀路只是最後一步,為了優化這最後一步,前面要做相應的準備工作,而這些是其它幾個熱門軟體很難做到的,就算能做相比較起來也很麻煩。 灌了這碗雞湯 UG加工較為複雜的三維曲面,工廠做產品造型的一般用UG,剛開始大學實習的時候去的一家公司做cnc工程師助理,面試的崗...