size_t size = sizeof(int);
printf("%d\n", size);
int i;
for (i = 0; i < size; i++) {
printf("%d ", i);
}
Приведенный выше код (с использованием gcc) outptus
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);
}
Этот код (я инициализирован в -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
Что не так во втором коде?Почему printf никуда не денется?