size_t size = sizeof(int);
printf("%d\n", size);
int i;
for (i = 0; i < size; i++) {
printf("%d ", i);
}
上記のコード (gcc を使用) の出力
4
0 1 2 3
size_t size = sizeof(int);
printf("%d\n", size);
int i;
for (i = -1; i < size; i++) {
printf("%d ", i);
}
このコード (i は -1 に初期化されます) は 4 のみを出力し、ループには何も出力しません。
size_t size = sizeof(int);
printf("%d\n", size);
int i;
for (i = -1; i < (int) size; i++) {
printf("%d ", i);
}
キャストを追加すると、コードが再び正常に実行されます。出力は
4
-1 0 1 2 3
2 番目のコードで何が問題になっていますか? printf がどこにも問題を起こさないのはなぜですか?