Порядок операций для преинкремента и постинкремента в аргументе функции? [Дубликат]
На этот вопрос уже есть ответ:
Почему эти конструкции используют неопределенное поведение до и после приращения? 14 ответовУ меня есть код на C:
main()
{
int a=1;
void xyz(int,int);
xyz(++a,a++); //which Unary Operator is executed first, ++a or a++?
printf("%d",a);
}
void xyz(int x,int y)
{
printf("\n%d %d",x,y);
}
Функцияxyz
имеет два переданных параметра,++a
а такжеa++
. Может кто-нибудь объяснить последовательность операций, чтобы объяснить результат?
Приведенный выше код выводит «3 13» или «2 23» в зависимости от того, какой компилятор используется.