Как изменять значение глобальной переменной

У меня есть переменная string str, изначально она пустая. Так же есть рекурсивная функция F(n);

void F(int n)
{
    str += to_string(n + 1);
    if (n > 1) {
        str += to_string (2 * n);
        F(n - 1);
        F(n - 3);
    }
}






int main()
{
    string str = "";
    int z;
    cin >> z;
    F(z);

}

Мне нужно чтобы все значения операций записывались в строку str, как это можно реализовать?


Ответы (1 шт):

Автор решения: Zhihar

от лучшего к худшему

способ 1:

передайте вашу строку функции по ссылке

void F(int n, std::string& str)

способ 2:

передайте в функцию указатель на вашу строку

void F(int n, std::string* str)

правда внутри функции придется работать вот так:

*str += to_string(n + 1);

способ 3:

сделайте вашу строку глобальной:

std::string str = "";

void F(int n)
{
    // тут код
}

int main()
{
    // тут код
}
→ Ссылка