C++ | Referencias | Pregunta 4

Prediga la salida del siguiente programa C++.

#include<iostream>
using namespace std;
  
int &fun()
{
    static int x = 10;
    return x;
}
int main()
{
    fun() = 30;
    cout << fun();
    return 0;
}

(A) Error del compilador: la función no se puede usar como lvalue
(B) 10
(C) 30

Respuesta: (C)
Explicación: cuando una función regresa por referencia, se puede usar como lvalue. Dado que x es una variable estática, se comparte entre las llamadas a funciones y la línea de inicialización «static int x = 10»; se ejecuta una sola vez.
La llamada de función fun() = 30, modifica x a 30. La siguiente llamada «cout << fun()» devuelve el valor modificado.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *