werehuman 02.08.2011 18:12 Psi+

Оттуда же прочитал задачку: как поменять значения двух переменных, не используя третью? На питоне оно просто, а на сишке сможете?

1. magog 02.08.2011 18:13 Psi+

вопрос с каждого второго собеседования

2. werehumanmagog /1 02.08.2011 18:13 Psi+

ну да, простая. Но я о ней никогда не слышал.

3. magogwerehuman /2 02.08.2011 18:17 Psi+

простым xor все делается

4. werehumanmagog /3 02.08.2011 18:17 Psi+

ага

5. magogwerehuman /4 02.08.2011 18:18 Psi+

И какой язык этого не сможет сделать? Только тот, в котром нету XOR из коробки

6. werehumanmagog /5 02.08.2011 18:18 Psi+

да не. Оговорка про питон в том, что там можно сделать "a, b = b, a"

7. magogwerehuman /6 02.08.2011 18:19 Psi+

в перле еще проще было. Правда я уже не помню как >_<

8. Kona-chan 02.08.2011 18:23 Mendoza

xor

9. Kona-chan 02.08.2011 18:24 Mendoza

Алсо, можно через сложение, но там риск переполнения.

10. gisty 02.08.2011 18:30 Gajim1F49B56B

a = a + b;
b = a — b;
a = a — b;

11. magoggisty /10 02.08.2011 18:31 Psi+

а если не инт?

12. gistymagog /11 02.08.2011 18:31 Gajim1F49B56B

а если адреса?

13. artsmagog /7 02.08.2011 19:01

Так же. ($a, $b) = ($b, a)

14. 238328 02.08.2011 21:27

Достаточно поставить флаги во времени и перемещаться между ними при помощи goto

15. ulidtko 02.08.2011 21:28

[:||||||||||:]

16. utros 02.08.2011 22:17 Adium

Для чисел их за меня кэп поменяет при помощи сложения и вычитания, а со строками и прочей радостью уже не прокатит.

17. 238328utros /16 02.08.2011 22:18 >>>

прокатит

18. kbKona-chan /9 03.08.2011 08:12 Gajim

в том-то и прикол, что при переполнении всё работает же.

Do you really want to delete ?