编程语言原宿
为什么很多编程语言要把0设置为第一个元素下标索引,而不是直观的1?
有啊,basic就是从1开始的,0是c语言引入,c语言本身是一种贴近底层的高级语言,用0是因为实际上下标就是内存指针。后来的编程语言大多受c影响巨大,因此很多都约定俗成用0做下标。如果设计者愿意java python go JavaScript 等等语言都可以用1作为数组下标起始。
计算机的基础是二进制。拿有符号8位整数来说,最小的二进制整数是00000000,-1是11111111。没有道理舍弃0不用。你有这种疑惑是因为你是从自然数的角度考虑的,但是实际上从十进制数字的角度来看,也是从0开始的。0123456789,然后进位,就是10了。
因为0在编程中是一个特别的数,在以前追求效率的年代,能跟0靠边就可以节省一条指令。比如跳转指令跟0比较是可以一条指令实现,而跟1比较得先减1再判断是否为零然后再跳转。那么,下标为0,能提升极限情况下的性能,所以一开始就这么定了
早期,Fortran默认是以1为首索引数(熟悉这个语言的知道它的索引数甚至可以设置为负数)。以0为首索引数是C语言带起来的,好处是计数器从不需要初始化,直接就从00000000开始。
做为一个三十多年用C,C++编程的人,第一次碰见有人问这问题。
的确是这样,不论是数组、字符串,还是指针,无一例外要从0开始访问。
char ch_array[4096];
for(int i=0;i<4096;i++)
ch_array[i]=30;
如果写成for(i=1;i<=4096;i++)ch_array[i]=30;
不仅错误,而且难看。
我想之所以从0开始,有几方面原因:
1,零是一个里程碑。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/11355.html