C++ | const palabra clave | Pregunta 1

Predecir la salida del siguiente programa

#include <iostream>
using namespace std;
int main()
{
    const char* p = "12345";
    const char **q = &p;
    *q = "abcde";
    const char *s = ++p;
    p = "XYZWVU";
    cout << *++s;
    return 0;
}

(A) Error del compilador
(B) c
(C) b
(D) Valor basura

Respuesta: (B)
Explicación: La salida es ‘c’

const char* p = “12345″ declara un puntero a una constante. Así que no podemos asignarle otra cosa a *p, pero podemos asignarle un nuevo valor a p.

carácter constante **q = &p; declara un puntero a un puntero. No podemos asignar otra cosa a **q, pero podemos asignar nuevos valores a q y *q.

*q = “abcde”; cambia p para que apunte a «abcde»

const carácter *s = ++p; asigna la dirección del literal ”bcde” a s. Una vez más, a *s no se le puede asignar un nuevo valor, pero s se puede cambiar.

La instrucción printf(“%cn”, *++s) cambia s a “cde” y se imprime el primer carácter en s.
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 *