Первый вызов функции cout << fun(x,y) << endl;
пропускает х, как 5 и у как -1. Поскольку y меньше 0, функция просто возвращает x в cout, поэтому она печатает 5.
Следующий вызов функции fun(y,x)
, который все еще проходит -1 и 5, однако на этот раз значения передаются в обратном порядке, поэтому внутри функции x равен -1, а y равно 5. Поскольку y равно 5, оператор if равен false, а x присваивается -1 + 2 или 1. Затем x как 1 и y как 5 печатаются и умножается на два, но ничего выполняется с умноженным значением.
Третий вызов функции проходит через x и y, но в предыдущем вызове функции x (как y) было изменено на 1. Поскольку значение было передано как ссылка y, теперь оно равно 1. Итак, x равно с учетом 5 + 2 и x и y печатаются как 71.
Четвертый вызов функции передает x и y снова в обратном порядке. Итак, напомним, что x было изменено на 7, а y равно 1. Но значения находятся в обратном порядке, поэтому в нашей функции x равно 1, а y равно 7. Таким образом, снова x присваивается значение 1 + 2, и они печатаются как 3 и 7.
Наконец, последний вызов функции проходит через x и y, но помните, что x (как y) был изменен на 3. Итак, теперь x равно 7 и y равно 3. Еще раз x назначается 7 + 2 и x и y напечатаны как 93. Так как функция вызывается из инструкции cout, умножение 9 и 3 также печатается как 27.
см. http://www.tutorialspoint.com/python/string_split.htm и i надеюсь, что вы знаете C++ – Venkatesh
Каковы ваши конкретные проблемы? – chrizke
вы отправили ссылку на python. И нет, я не знаю C++, поэтому я задаю вопрос. lol, что возвращают эти функции – Y28