I am testing this piece of code in c
long long n = 1000000;
long long var1,var2;
int x = 50000;
var1 = n * x * x;
var2 = x * x * n;
printf("var1 = %lld\n", var1);
printf("var2 = %lld\n", var2);
When i run it produces this output
var1 = 2500000000000000
var2 = -1794967296000000
I don't understand why changing the order of variables being multiplied produced an overflow.