【发布时间】:2019-09-14 13:21:57
【问题描述】:
我正在运行下面的代码示例,最初尝试向后打印一个字符数组,其中count 表示数组中的字符数。每次我运行 for 循环时,i 都没有初始化为 count - 1,而是初始化为一个非常大的数字。但在循环之外,i 被正确初始化为 4。我无法解释为什么会发生这种情况。
size_t count {5};
size_t i {count - 1UL}; // i is initalized to 4
for(size_t i {count - 1}; i >= 0UL; --i) {
std::cout << i << std::endl;
} // infinite loop, i is initalized to 18446744073709141874
【问题讨论】:
-
size_t是无符号的,所以它总是>= 0。 -
所以我应该只在向后迭代时使用带整数的循环计数器?
标签: c++ loops for-loop unsigned size-t