Я изучаю C ++ и у меня есть код:

float x, y;

namespace X {
    void SetMyX(float p) {
        x = p;
    }
    void SetMyY(float p) {
        y = p;
    }
    namespace XY {
        void Set(float p = 0.0f) {
            x = p;
            p = y;
        }
    }
}

int main() {
    X::SetMyX(5.4f);
    std::cout << "x = " << x << " y = " << y << std::endl;
    X::SetMyY(4.1f);
    std::cout << "x = " << x << " y = " << y << std::endl;
    X::XY::Set();
    std::cout << "x = " << x << " y = " << y << std::endl;
    return 0;
}

И вывод:

x = 5.4 y = 0
x = 5.4 y = 4.1
x = 0 y = 4.1

И я выяснил, что переменная p устанавливает значение x, а затем y устанавливает значение p? Но как это возможно? В C ++ вы также можете установить значение аргумента функции или что? Это просто странно для меня, потому что я думал, что вы не можете просто «редактировать» введенное значение, и вы должны добавить другую переменную, например результат или что-то в этом роде, или просто вернуть сумму двух аргументов, но изменить их?

0
Eduard Morecat 12 Фев 2021 в 05:04

1 ответ

Лучший ответ

Да, аргумент p - это совершенно обычная переменная, и вы можете делать с ней все что угодно.

Это также будет работать на многих других языках, таких как C, Java, Javascript или Python.

2
kritzikratzi 12 Фев 2021 в 02:08