其他
C语言的数组为什么要从0开始编号
先听首歌,放松下心情!
微信公众号:morixinguan
关注可了解更多的教程。问题或建议,请公众号留言;
如果你觉得本文对你有帮助,欢迎赞赏
在学习数据结构与算法之美中看到一个知识点挺有趣,虽然不是作者压倒性的实验证明,但分析起来也是有道理的,我们来看看是怎么回事:
假设又有a[i]和b[i]两个int类型的数组,如果按计算偏移地址来获取数据,a表示数组的首地址,如果数组从0开始计数,则a[0]就是偏移为0的位置,a[i]表示偏移i个数据类型大小的位置。则a[i]满足以下计算公式:
1a[i] = 基地址 + i * 数据类型
如果数组从1开始计数,则满足以下公式:
1b[i] = 基地址+(i-1)*数据类型
很显然,从1开始计数编号,每次随机访问数组元素都多了一次减法运算,对于CPU来说,即是多了一条SUB指令,显然从0开始计算要高效一些。
另外推荐相关课程:
韦东山老师优质嵌入式学习干货推荐:包括ARM裸机开发、Linux设备驱动程序、Linux应用程序开发、Android系统学习、Linux设备树等。 在我这里购买韦东山老师的课程不仅可以比淘宝等网站优惠,还可得到本人的技术支持,手把手带你飞!
王争老师优秀数据结构算法学习课程推荐
新人购买仅需69元,在我这里购买还可优惠10元,机会不容错过!
长期商务合作服务:
本公众号以及本人在圈子里有很多的人流量,如需定期产品推广,货源代销等可关注微信公众号<<安立顺产品服务>>,我们可以用这个公众号来帮你赚更多的钱。
联系人:
深圳安立顺技术研发事业群总经理 杨源鑫
上个月去4S店提车的时候,抽奖抽到了一个净水器,原价2980元,京东可查,100%全新,现1900元转手,有需要的可以直接微信联系我。