【C++ 学习】那些习以为常的背后之一从0开始的计数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/laoxuan2011/article/details/52718057

说明

C++编程有一些习以为常的惯用用法,认真思考会发现并不是无凭无据。

为什么从0开始计数

在C++程序中,大家经常可见从0开始计数而不是从1开始计数。

for(int i=0; i!=rows;++i){
...
}

如果从1开始的话,等价于:

for(int i=1; i<=rows;++i){
...
}

实际上这两种是等价,但是为什么习惯用第一种方式?

对称区间和不对称区间

第一种方式,其实是一个不对称区间[0 , rows)
第二种方式,其实是一个对称区间[1 , rows]

不对称区间可以直观简单地看出区间元素个数:不对称区间[m , rows)的元素个数就是rows-m,而对称区间[m , rows)的元素个数就是rows-m+1

不对称区间很容易表示空区间:不对称区间[n , n)表示空区间,而对称区间表示为[n , n-1],显然当程序中区间的末尾比开头小,那会产生很多麻烦。

最后一点是,使用

for(int i=0; i!=rows;++i){
...
}

使得循环更容易理解和表达,在上面代码从0开始计数,告诉我们到目前为止已经运行了r次,而条件是i!=rows,这样在循环结束时候,我们更容易知道这时i=rows

猜你喜欢

转载自blog.csdn.net/laoxuan2011/article/details/52718057