Порядок операций для преинкремента и постинкремента в аргументе функции? [Дубликат]

На этот вопрос уже есть ответ:

Почему эти конструкции используют неопределенное поведение до и после приращения? 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» в зависимости от того, какой компилятор используется.

Ответы на вопрос(4)

Ваш ответ на вопрос