C for循环表现奇怪

som*_*one 1 c for-loop

我偶然发现了一个持久的问题,似乎没有一个合理的解释.这个问题似乎在于一个for循环,进入内部for (i = size - 1; i >= 0; i--) {etc.},其中size是存储在存储器缓冲器中的文件的大小和i是无符号整数.它不会停止i == 0,而是环绕 - 从而导致i = 4294967295并导致分段错误.更改条件以i > 0解决问题.

但是,这不是特别的吗?我必须忽略for循环如何在C中运行的一些关键部分.它不遵循这个方案:初始化,检查条件,递增/递减,检查条件等等?

任何帮助表示赞赏!

oua*_*uah 8

始终是无符号整数>= 0.

for (i = size - 1; i >= 0; i--) {etc.}
Run Code Online (Sandbox Code Playgroud)

如果i是一个无限循环unsigned int.