使用size_t注意边界

C++中的 size_t 表示数组的下标,一般为:

typedef unsigned size_t;

在学习中我们一般使用int表示下标,这样在循环中可以判断边界x>=0 或x<=0,比如:

for(int i=n; i>=0; i--)
{
     ....
}

但是如果使用size_t则必须加入边界判断,这是由于size_t是无符号数,当它为0时,再减一会变成最大的无符号数,导致内存访问错误:

for(size_t i=n; i>=0; i--)
{
     ....
    if(i == 0)
       break;
}

 

posted on 2015-05-08 10:26  chybot  阅读(161)  评论(0编辑  收藏  举报