数组从0开始计数有什么好处
  • (1)假设你上班的地方位于一座5层的写字楼里,你爬1层楼需要10秒,那么请问你爬上5楼需要花费多少时间? 为了正确计算这个问题,我们需要使用的是:10秒*(5-1)=40秒;

  • (2)等差数列第n项的值为:初项+公差*(n-1);

  • (3)我们都知道20世纪是19__年,19世纪是18__年

对于以上3个问题如果分别按照如下处理:

  • (1)写字楼和地面相同的高度的那一层,计数为0层;

  • (2)数列最初的项,计数为第0项;

  • (3)最初的世纪计数为0世纪。

就能够回避在计算或者理解问题时的一些不方便,比如这时候:

  • (1)你从0层爬到4层需要多少时间,就可以脱口而出40秒;

  • (2)等差数列的通项公式就可以更简洁地表达为:初项+公差*n;

  • (3)19世纪对应的就是19__年……等等等等

举了一个编程中的例子,假设你需要使用一维数组去代替二维数组使用,

假设最初的行为第0行,最初的列为第0列,数组下标也是从0开始的,那么:

/* width为行的宽度,引用第line行,第col列的元素*/
array[line * width + col]

假设最初的行为第1行,最初的列为第1列,数组下标也是从1开始的,那么,上面的代码就需要改成下面这样:

array[(line-1) * width + (col-1)]

对比可以看到从0开始计数,代码更加简洁美观。

作者:秦栋梁
链接:https://www.zhihu.com/question/20302205/answer/142786575
来源:知乎

更多文章请关注《万象专栏》

本栏目由《康祺惠购APP》独家赞助