Рубрики

C ++ | Отзывы | Вопрос 4

Предсказать вывод следующей программы на C ++.

#include<iostream>

using namespace std;

  

int &fun()

{

    static int x = 10;

    return x;

}

int main()

{

    fun() = 30;

    cout << fun();

    return 0;

}

(A) Ошибка компилятора: функция не может использоваться как lvalue
(Б) 10
(С) 30

Ответ: (с)
Объяснение: Когда функция возвращается по ссылке, ее можно использовать как lvalue. Поскольку x — статическая переменная, она распределяется между вызовами функций, и строка инициализации «static int x = 10;» выполняется только один раз.
Вызов функции fun () = 30, изменяет x на 30. Следующий вызов cout << fun () возвращает измененное значение.
Тест на этот вопрос

Рекомендуемые посты:

C ++ | Отзывы | Вопрос 4

0.00 (0%) 0 votes