次のループが無限回実行されないのはなぜですか? 65535 に達すると、i
オーバーフローしてゼロに戻るはずです。
#include<stdio.h>
int main()
{
short int i = 0; //(assume short int is 2 bytes)
for(i<=5 && i>=-1; ++i; i>0)
printf("%u\n", i);
return 0;
}
編集
これはどうですか
#include<stdio.h>
int main()
{
int x=1, y=1;
for(; y; printf("%d %d\n", x, y))
{
y = x++ <= 5;
}
printf("\n");
return 0;
}
正常に実行され、印刷されます
2 1
3 1
4 1
5 1
6 1
7 0
終了する理由は何ですか?