int main ()
{
int t;
t = 15;
t = t - 2 * t + 5;
printf("%d", t);
}
Строка t = t - 2 * t + 5; вычисляется следующим образом:
Сначала подставляются значения: t = 15 - 2 * 15 + 5;
Выражение внутри вычисляется слева направо:
2 * 15 получается 30.
15 - 30 получается -15.
-15 + 5 получается -10.
Таким образом, t присваивается значение -10.
Следовательно, printf выводит -10.
int main ()
{
int t;
t = 15;
t - 2 * t + 5;
printf("%d", t);
}
Строка t - 2 * t + 5; не имеет оператора присваивания. Это выражение вычисляется, но его результат не используется и не присваивается t. Значение t остаётся неизменным:
t равно 15, как было установлено на предыдущем шаге.
Следовательно, printf выводит 15.
Основная разница в том, что без оператора присваивания (=) значение переменной t не изменяется, а с оператором присваивания значение переменной t изменяется в соответствии с выражением.
{
int t;
t=15;
t = 15;
t= t - 2 * t + 5;
printf("%d",t);
}
выводит - 10
а если так
int main ()
{
int t;
t=15;
t = 15;
t - 2 * t + 5;
printf("%d",t);
}
15?