Рассмотрим следующий код:
#include <stdio.h>
int main()
{
printf("%d", 300 * 300 / 300);
return 0;
}
Этот код при запуске на стандартном компиляторе GCC дает результат как 300
, но когда я запускаю его с использованием Turbo C, результат равен 81
.Почему это так?Я понимаю, что TC использует 2 байта для хранения целых чисел, и результат 300 * 300
явно превысит этот предел, но прежде чем он будет напечатан, он снова разделится на 300, верно?И что дополнительно вычисляется первым?300 / 300
или 300 * 300
?) В чем причина такого поведения ??