w*********s 发帖数: 277 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: woganmitbbs (我gan买买提), 信区: Programming
标 题: 新手请教:C++ decrement loop
发信站: BBS 未名空间站 (Mon Nov 1 15:41:40 2010, 美东)
编程新手,请不吝赐教!
for(unsigned int idx = 9; idx >= 0; idx--) {
cout << "index is " << idx << endl;
}
这么简单的都没调通,很郁闷。这个loop不能terminate,即使idx已经是负数了。
最原始的本意是作为vector的index,所以用的vector::size_type,发现不能
terminate,所以就换成unsigned int试试,仍然不terminate。
谢谢指点! | a****n 发帖数: 1887 | 2 unsigned int ...
i = 0;
i--;
i == 0xffffffff // > 0 | l*******o 发帖数: 791 | 3 原因是idx永远也到达不了你想的负1,因为idx是unsigned的不能表示负数。比如哦idx
为0时,你再减去一个1得到的值会overflow,这个结果还是个整数。你的循环将执行下
去 | w*********s 发帖数: 277 | |
|