array(0)唔用, 會唔會有甚麼缺點?

例如想裝三舊野 abc1 abc2 abc3

咁就要dim個array, a(2)

但咁樣將來要思考的時候, 成日要加一 / 減一
好像有點麻煩, 而且思考時間會變長左

如果我以後都習慣係咪都dim 四個出黎 a(3)
個a(0)完全地忽視佢, 請問這種寫法會不會有甚麼缺點?

會浪費左一個Area

TOP

而家memory 咁平, 浪費唔係大問題
你用呢個方避開左looping既 +1 或 -1
但係你 count 個 array 時又要 -1

正正經經跟人地language果套啦

TOP

原帖由 主人 於 2009-3-9 23:29 發表
例如想裝三舊野 abc1 abc2 abc3

咁就要dim個array, a(2)

但咁樣將來要思考的時候, 成日要加一 / 減一
好像有點麻煩, 而且思考時間會變長左

如果我以後都習慣係咪都dim 四個出黎 a(3)
個a(0)完全地忽視佢, 請問這種寫法會不會有甚麼缺點?


你要習慣 0-based index, 多數programming language 都係0-based
習慣左之後你會覺得唔減一好礙眼...

TOP

其實唔要 0 最大麻煩係 counting.

Say....我要 2 個 item, 如果 array length 係 2, 一定會係 0 同 1. 但如果你用 1 同 2, 變佐你個 array length 係 3, logic 上有出入

TOP

0-based, 1-based都係一樣, 只係一種做法, 冇咩特別缺點. 但反傳統只會引來confusion.

TOP

原帖由 無忌 於 2009-3-10 01:45 發表
0-based, 1-based都係一樣, 只係一種做法, 冇咩特別缺點. 但反傳統只會引來confusion.


都唔係完全無分別, 如果一個library function 接受一個array 做parameter, 佢唔一定可以指定 data 既起始index (Java 既 IO class 可以, C/C++ 可以用pointer補救), 而假設index 0 都有資料, 到時有可能要將data 抄寫一次先可以pass 去呢D function.

TOP

原帖由 thinkpanda 於 2009-3-9 08:45 PM 發表

都唔係完全無分別, 如果一個library function 接受一個array 做parameter, 佢唔一定可以指定 data 既起始index (Java 既 IO class 可以, C/C++ 可以用pointer補救), 而假設index 0 都有資料, 到時有可能要將data 抄寫一次先可以pass 去呢D function.


咁梗係講大家有共識既基礎上先係無分別啦.

TOP

一用 counting function 就 high high

TOP

習慣上既分別啦,至少我慣晒由0開始數嘢…
初頭係有啲唔慣,但好快你會慣,同埋大部份人都由0數,你都係要跟,唔係你將來理解或同人合作時會好麻煩…

TOP