Salida de programas C++ | Conjunto 21

¿Cuál será el resultado de este programa?

#include<iostream>
using namespace std;
int x; // Global x
  
int main()
{
    int x = 10; // Local x
    cout << "Value of global x is " << ::x << endl;
    cout << "Value of local x is " << x; 
    return 0;
}

Producción:

Value of global x is 0
Value of local x is 10

En C++, se puede acceder a la variable global (si tenemos una variable local con el mismo nombre) usando el operador de resolución de alcance (::).

 
¿Cuál será el resultado de este programa?

#include <iostream>
using namespace std;
int a = 90;
  
int fun(int x, int *y = &a)
{
    *y = x + *y;
    return x + *y;
}
  
int main()
{
    int a = 5, b = 10;
  
    a = fun(a);
    cout << a << " " << b << endl;
  
    b = fun(::a,&a);
    cout << a << " " << b << endl;
  
    return 0;
}
100   10
195   290

Hay dos variables con nombre ‘a’, una es global y otra es local. Cuando llamamos a = fun(a); , llama a int fun(int x, int *y=&a), aquí el puntero a la variable global (que es a = 90) se asigna a y. Por lo tanto.
*y = x + *y; // se convierte en 5 + 90
return x + *y; // se convierte en 5 + 95

 
¿Cuál será el resultado de este programa?

#include <iostream>
using namespace std;
int a = 2;
  
int fun(int *a)
{
    ::a *= *a;
    cout << ::a << endl;
    return *a;
}
  
int main()
{
    int a = 9;
    int &x = ::a;
  
    ::a += fun(&x);
    cout << x;
}

Producción:

4
8

La variable global está siendo accedida por la función fun cada vez que usa ::a. El valor de la variable local no afecta al valor de a.

 
¿Cuál será el resultado de este programa?

#include <iostream>
using namespace std;
  
int main()
{
    char *A[] = { "abcx", "dbba", "cccc"};
    char var = *(A+1) - *A+1;
    cout << (*A + var);
}

Producción:

 bba

Aquí la representación de la array es A[0] = “abcx”, A[1] = “dbba”, A[2] = “cccc”. La precedencia de (puntero)* >(binario) +, y el orden de ejecución de ‘*’ es de derecha a izquierda. Si la dirección ‘A’ es ‘x’, entonces la dirección de ‘*(A+1)’ es ‘x+6’ y la dirección de ‘*A+1’ es ‘x+1’. Entonces, valor entero de var = 6 (número total de caracteres entre dos puntos (x+6)-(x+1)+1). Durante la impresión, el operador ‘+’ está sobrecargado, ahora el puntero apunta a ‘x+7’. Por esta razón la salida del programa.
 
¿Cuál será el resultado de este programa?

#include <iostream>
using namespace std;
  
int main()
{
    char a = 'a', b = 'x';
    char c = (b ^ a >> 1 * 2) +(b && a >> 1 * 2 );
    cout << " c = " << c;
}

Producción:

 c = 97

Valor entero de a = 97 (01100001), valor entero de b = 120 (01111000), precedencia de ‘*’ > ‘>>’ > ‘^’ > ‘&&’.
Entonces la expresión es ‘ ((b ^ (a >> (1 * 2))) – (b && (a >> (1 * 2 ))))’. Valor entero de la expresión
a >> 1 * 2 = 24 b ^ a >> 1 * 2 = 96 b && a >> 1 * 2 = 1 que es 97.

¿Cuál será el resultado de este programa?

#include <iostream>
using namespace std;
  
int main()
{
    int i = 5, j = 3;
    switch(j)
    {
    case 1:
        if (i < 10) cout << "\ncase 1";
        else if (i > 10)
           case 2:
               cout << "case 2";
        else if (i==10)
           case 3:
    default:
        cout << "case 3";
        cout << "hello";
    }
}

Producción:

case 3hello

Como j=3 satisface la condición, va en el caso 3. No hay nada en el caso 3, tampoco hay interrupción. Entonces se ejecuta por defecto. Consulte la declaración de cambio en C para obtener más detalles.

Este artículo es una contribución de Punit, Smriti Satyanarayana, Akash Tiwari, Sagar Tripathy . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

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 *