作者SmallBeeWayn (喵喵叫的蜜蜂猫)
看板Programming
标题Re: [问题] 关於阵列从0或1开始算起的好处
时间Fri Aug 20 05:35:56 2010
我觉得首要的还是以这程式语言的使用环境要求
例如在一些低阶(要求速度的组合语言、一般的单晶片开发)环境
阵列从0起算是很正常的,因为不这样的话会白白增加程式码长度
另外,GOTO自然是用得更凶了,反正编译之後都是一堆JMP
只要加上适当的旗标,GOTO没那麽难搞
但是到了大型(数千数万行)的专案(程式设计师合作)开发的时候
程式码最重要的是可读性可流通性那些
GOTO不是不能用,但就仅限於特殊要求程式码效率的小Function
至於阵列该怎麽起算? 好用,程式码能够乾净简洁才是最重要的
: : http://www.iis.sinica.edu.tw/~scm/ncs/2009/07/go-to-considered-harmful/
: : 上面这个连结虽然是讨论GOTO
: : 不过Dijkstra大师在里面说
: : 『我以为到了现在,一个专业程式员该有高一点的自我要求了,阵列应该从0算起,
: : 我以为到了现在,一个专业程式员该知道自然数从 0 开始的好处了』
: : 但是我在看Core Java的时候作者又说了
: : 『Java counts the code units in strings in a peculiar fashion:
: : the first code unit in a string has position 0.
: : This convention originated in C,
: : where there was a technical reason for counting positions starting at 0.
: : That reason has long gone away and only the nuisance remains.
: : However, so many programmers are used to this convention that
: : the Java designers decided to keep it.』
: : 如果可以抛开历史因素之类相容问题的话
: : 那麽阵列索引到底是从0开始计算好,还是从1开始计算好呢?
在VB6中如果你宣告一个 Array(10)
指的是Array(0~10)都可以用,共有十一个空位,你可以从0算到9或是1算到10都可以
原因很单纯的就是不差那一点记忆体空间(VB.Net我不确定)
在Fortran中如果宣告Array(10), 可用空间则是1~10
在C、JAVA的话,则都是0~9
--
填充题: ______なのはいけないと思います!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.116.180.163
1F:推 aecho:答案是 リリカル 吗.... 114.43.194.2 08/20 06:20
2F:→ horngsh:楼上是用BIG5的日文吗?112.104.191.119 08/20 09:15
3F:推 milonga332:了解了..多虾 123.50.39.188 08/20 11:40
4F:→ MOONRAKER:VB.NET也改成C-Style了。所以.NET下写125.227.222.205 08/20 12:10
5F:→ MOONRAKER:啥语言都是换个皮而已,颇无聊。125.227.222.205 08/20 12:11
6F:推 loveme00835:这样也就表示沟通上比较方便了说@@140.121.197.115 08/20 12:17
7F:→ MOONRAKER:这倒是啦…其实我真正不爽的是MS同时把125.227.222.205 08/20 16:52
8F:→ MOONRAKER:很多C的特色加入VB.NET中,例如+=, -=125.227.222.205 08/20 16:52
9F:→ MOONRAKER:这些组合运算子,搞得两边没啥差异性 :<125.227.222.205 08/20 17:00
10F:推 aecho:是日文,用Nally的编辑贴上的 114.43.194.2 08/21 14:35
11F:→ aecho:还不会用这台打日文,所以就复制贴上~~ 114.43.194.2 08/21 14:35