Prerrequisito: C Constantes y strings
P.1 ¿Cuál es el resultado de este programa?
CPP
#include<iostream> using namespace std; int main() { const char *s = ""; char str[] = "Hello"; s = str; while(*s) printf("%c", *s++); return 0; }
Opciones
a) Error
b) H
c) Hola
d) Hola
ans:- c
Explicación :
const char *s = "";
La variable constante s se declara como un puntero a un tipo de array de caracteres y se inicializa con una string vacía.
char str[] = "Hello";
La variable str se declara como un tipo de array de caracteres y se inicializa con una string «Hola».
s = str;
El valor de la variable str se asigna a la variable s. Por lo tanto, str contiene el texto «Hola».
while(*s) { printf("%c", *s++); }
Aquí el bucle while se ejecuta hasta que el valor de la variable s está disponible e imprime cada carácter de la variable s.
Por lo tanto, la salida del programa es «Hola».
P.2 ¿Cuál es el resultado de este programa?
CPP
#include<iostream> using namespace std; int get(); int main() { const int x = get(); printf("%d", x); return 0; } int get() { return 20; }
Opciones
a) Valor basura
b) Error
c) 20
d) 0
ans:- c
Explicación :
int get();
Este es el prototipo de función para la función get(), le dice al compilador que devuelve un valor entero y no acepta parámetros.
const int x = get();
La variable constante x se declara como un tipo de datos entero y se inicializa con el valor «20».
La función get() devuelve el valor “20”.
P.3 ¿Cuál es el resultado de este programa?
CPP
#include<iostream> using namespace std; int fun(int **ptr); int main() { int i=10; const int *ptr = &i; fun(&ptr); return 0; } int fun(int **ptr) { int j = 223; int *temp = &j; printf("Before changing ptr = %5x\n", *ptr); const *ptr = temp; printf("After changing ptr = %5x\n", *ptr); return 0; }
Opciones
a) Dirección de i
Dirección de j
b) 10
223
c) Error: no se puede convertir el parámetro 1 de ‘const int **’ a ‘int **’
d) Valor basura
ans:- c
Explicación: aquí, ptr se declara como un puntero entero constante al que se asigna la dirección de i, pero en la función, el puntero doble divertido se pasa como argumento, por lo que no se puede convertir de ‘const int **’ a ‘int **’.
P.4 ¿Cuál es el resultado de este programa?
CPP
#include<iostream> using namespace std; int main() { const int i=0; printf("%d\n", i++); return 0; }
Opciones
a) 10
b) 11
c) Sin salida
d) Error: ++ necesita un valor
ans:- d
Explicación :
const int i = 0;
La variable constante ‘i’ se declara como un número entero y se inicializa con el valor de ‘0’ (cero).
printf("%d\n", i++);
Aquí la variable ‘i’ se incrementa en 1 (uno). Esto creará un error «No se puede modificar un objeto const».
Porque no podemos modificar una variable const.
P.5 ¿Cuál es el resultado de este programa?
CPP
#include<iostream> using namespace std; int main() { const int c = -11; const int d = 34; printf("%d, %d\n", c, d); return 0; }
Opciones
a) Error
b) -11, 34
c) 11, 34
d) Ninguna de estas
ans:- b
Explicación :-
const c = -11;
La variable constante ‘c’ se declara y se inicializa al valor «-11».
const int d = 34;
La variable constante ‘d’ se declara como un número entero y se inicializa con el valor ’34’.
printf("%d, %d\n", c, d);
Se imprime el valor de la variable ‘c’ y ‘d’.
Por lo tanto, la salida del programa es -11, 34
Este artículo es una contribución de Pragya Singh . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@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