猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么索引从‘C’中的零开始?
为什么索引从‘C’中的零开始?
为什么数组中的索引以C中的零开始,而不是以1开头?
猛跑小猪
浏览 375
回答 3
3回答
温温酱
这个问题是一年前发布的,但现在.关于上述原因当迪克斯特拉的文章(以前在“现在删除”中引用的回答)从数学的角度来看,它是有意义的不相关在编程方面。语言规范&编译器设计器所做的决定是基于计算机系统设计者决定从0开始计数的。可能的原因引用自请求和平丹尼·科恩。IEEE链路莲-137对于任何b基,第一个B^N非负整数精确地表示为N数字(包括前导零)只有当编号开始于0时。这是很容易测试的。在基地-2,采取2^3 = 8第八个号码是:8(二进制数:1000)如果我们从1开始计数7(二进制数:111)如果我们从0开始计数111可以用3比特,同时1000将需要额外的位(4位)。为什么这是相关的计算机内存地址2^N细胞N比特。如果我们从1开始计数,2^N细胞需要N+1地址线。需要额外的位才能准确地访问一个地址。(1000在上述情况下。)。另一种解决方法是使最后一个地址无法访问,然后使用N地址线。两者都是次优解,与从0开始计数相比,它将保持所有地址都是可访问的,使用N地址线!结语决定开始计算0,已经渗透到全数字系统,包括在它们上运行的软件,因为它使代码更容易转换为底层系统可以解释的内容。如果不是这样的话,那么机器和程序员之间就会有一个不必要的转换操作,用于每一个数组访问。它使编译更容易。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续