首页编程语言编程语言原宿

编程语言原宿

cysgjjcysgjj时间2024-04-11 11:43:28分类编程语言浏览39
导读:为什么很多编程语言要把0设置为第一个元素下标索引,而不是直观的1?为什么很多编程语言要把0设置为第一个元素下标索引,而不是直观的1?有啊,basic就是从1开始的,0是c语言引入,c语言本身是一种贴近底层的高级语言,用0是因为实际上下标就是内存指针。后来的编程语言大多受c影响巨大,因此很多都约定俗成用0做下标。如果设计者愿意java ……...
  1. 为什么很多编程语言要把0设置为第一个元素下标索引,而不是直观的1?

什么很多编程语言要把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

下标语言开始
互联网技术团队投入成本,互联网技术团队投入成本占比 编程语言培训学费