Показать сообщение отдельно
Старый 12.01.2022, 12:32   #9  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,867 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от EVGL Посмотреть сообщение
Если оговорены типы то можно без дополнительных переменных.
X++:
static void swapExample(Args _args)
{
    container   swap(int _a, int _b)
    {
        int     a = _a;
        int     b = _b;
        ;
                   // a == _a;       b == _b;  
        a = a + b; // a == _a + _b;  b == _b;
        b = b - a; // a == _a + _b;  b == -_a;
        a = a + b; // a ==      _b;  b == -_a;
        b =    -b; // a ==      _b;  b ==  _a;
        
        info(con2Str([_a, _b, "       ", a, b]));
        
        return [a, b];
    }
    ;
    
    swap(1, 2);
    swap(1, 20);
}
Кстати, использование стека, это по сути и есть дополнительные переменные. Просто синтаксис другой. Все переменные как правило на стеке живут или в куче.
За это сообщение автора поблагодарили: sukhanchik (15).