C/C++ 错误集

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

开发环境及工具:win7 + Visual Studio 2010

1. unsigned 的边界问题

for (unsigned u = 10; u >= 0; --u)
{
	cout << u << " " << endl;
}

u = 0 再减就得 -1 不符合要求,这里会转成一个合法的无符号数 4294967295

替代的办法是:

unsigned u = 11;
while(u > 0)
{
    --u;
    cout << u << endl;
}

减到 u = 0 去判断就会跳出循环

猜你喜欢

转载自blog.csdn.net/CV2017/article/details/82666782
今日推荐