¿Cómo acceder a la variable global si hay una variable local con el mismo nombre en C/ C++?

Variable local: la variable cuyo alcance se encuentra dentro de una función o un bloque en el que se declaran. 

Variable global: la variable que existe fuera de todas las funciones. Es la variable que es visible desde todos los demás ámbitos.

Podemos acceder a la variable global si hay una variable local con el mismo nombre en C y C++ a través del operador de resolución Extern y Scope respectivamente.

Cía:

1) Podemos acceder a una variable global si tenemos una variable local con el mismo nombre en C usando extern . 

C

// C Program to demonstrate that we can access a global
// variable if we have a local variable with same name
#include <stdio.h>
 
// Global variable x
int x = 50;
 
int main()
{
    // Local variable x
    int x = 10;
    {
        extern int x;
        printf("Value of global x is %d\n", x);
    }
    printf("Value of local x is %d\n", x);
    return 0;
}
Producción

Value of global x is 50
Value of local x is 10

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

En C++:

2) Podemos acceder a una variable global si tenemos una variable local con el mismo nombre en C++ usando el operador de resolución de alcance (::). 

C++

// C++ Program to demonstrate that We can access a global
// variable if we have a local variable with same name in
// C++ using Scope resolution operator (::)
#include <iostream>
using namespace std;
 
// Global variable x
int x = 50;
 
int main()
{
    // Local variable x
    int x = 10;
    cout << "Value of global x is " << ::x << endl;
    cout << "Value of local x is " << x;
    getchar();
    return 0;
}
Producción

Value of global x is 50
Value of local x is 10

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.  

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 *