Вывод c кода как с вызовом по ссылке [closed]

Учитывая этот код C:

int x=12,y=10;

void tswap(int pa, int pb) {
   int tmp;
   tmp=pa;
   pa=pb;
   pb=tmp;
   x=x+pa;
   x=x-pb;
   y++;
   printf("%d %d %d %d\n",pa,pb,x,y);
}

int main() {
    int a=4;
    tswap(x,a);
    printf("%d %d %d\n",x,y,a);
    return 0;
}

Я должен выяснить, что это напечатало бы, если бы C использовал вызов по ссылке.

Вот мои ожидания.

Прежде всего

х = 12 у = 10 и а = 4

after tswap(12,4):
pa=x=12 pb=a=4

after tmp=pa:
tmp=pa=x=12
-----------
after pa=pb:
tmp=x=12
pa=pb=a=4
-------------
after pb=tmp:
pb=tmp=x=12
pa=a=4

after x=x+pa
x=16
------------
and after x=x-pb and y++
x=4,y=11

Поэтому я думаю, что x = 4, pb = 12, pa = 4, y = 11; но ответ говорит -4 12 -4 11. Где я не прав?

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

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