Как поменять два значения указателя без использования третьей переменной - PullRequest
0 голосов
/ 14 октября 2018
*a=10
*b=20

Как поменять их местами без использования третьей переменной?Вывод должен быть как

*a=20
*b=10

1 Ответ

0 голосов
/ 14 октября 2018

Не уверен, что интервьюер искал XOR вместо чего-то еще, но кажется, что вы можете просто использовать +, - и x.Должно работать, если а больше или отрицательно.

*a+=*b
*b-=*a
*b=*b x -1
*a-=*b

В вашем примере это даст нам:

*a+=*b --> *a = 30
*b-=*a --> *b = -10
*b=*b x -1 --> *b = 10
*a-=*b --> *a = 20
...