Возьмите следующее:
#include <stdio.h>
main() {
unsigned long long verybig = 285212672;
printf("Without variable : %llu\n", 285212672);
printf("With variable : %llu", verybig);
}
Это результат выполнения вышеуказанной программы:
Without variable : 18035667472744448
With variable : 285212672
Как вы можете видеть из вышеизложенного, когда printf
передается число как константа, он печатает некоторое огромное неправильное число, но когда значение сначала сохраняется в переменной, printf
печатает правильный номер.
Каковы причины этого?