前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言的数组为什么要从0开始编号

C语言的数组为什么要从0开始编号

作者头像
杨源鑫
发布2019-07-04 15:58:57
8650
发布2019-07-04 15:58:57
举报
文章被收录于专栏:嵌入式开发圈

在学习数据结构与算法之美中看到一个知识点挺有趣,虽然不是作者压倒性的实验证明,但分析起来也是有道理的,我们来看看是怎么回事:

假设又有a[i]和b[i]两个int类型的数组,如果按计算偏移地址来获取数据,a表示数组的首地址,如果数组从0开始计数,则a[0]就是偏移为0的位置,a[i]表示偏移i个数据类型大小的位置。则a[i]满足以下计算公式:

代码语言:javascript
复制
1a[i] = 基地址 + i * 数据类型

如果数组从1开始计数,则满足以下公式:

代码语言:javascript
复制
1b[i] = 基地址+(i-1)*数据类型

很显然,从1开始计数编号,每次随机访问数组元素都多了一次减法运算,对于CPU来说,即是多了一条SUB指令,显然从0开始计算要高效一些。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式开发圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档