Я изучаю программирование C и в настоящее время около operators.I'm немного запутались в одной задаче sometimes.please имеет на изображении Как вывод c равен 53?
Программа:
#include<stdio.h>
int main()
{
int a=9,b=5,c;
c=a*b++ + --a;
printf("%d",c);
return 0;
}
Я думаю, выход должен быть , но он показывает . Поскольку - у вас есть более высокий приоритет, поэтому он должен быть оценен первым и bis post increment, поэтому значение b будет изменено после окончания инструкции. (correct если я ошибаюсь).
Пожалуйста, помогите. Спасибо заранее.
Старшинство не равно порядок вычисления в C. Например, компилятор может принять решение о первом приращении 'a', а затем оценить оба экземпляра' a'. – fuz
Я не понял, что вы говорите, пожалуйста, уточните. –
Ваши рассуждения о выводе оценочного порядка из приоритета неверны. Приоритет только сообщает компилятору, куда положить круглые скобки, он не сообщает компилятору, в каком порядке оценивать вещи. – fuz