#include <stdio.h> int main() { int x = 5; int * const ptr = &x; ++(*ptr); printf("%d", x); return 0; }
(A) Error del compilador
(B) Error de tiempo de ejecución
(C) 6
(D) 5
Respuesta: (C)
Explicación: Consulte las siguientes declaraciones para conocer la diferencia entre un puntero constante y un puntero a una constante.
int * const ptr —> ptr es un puntero constante. Puede cambiar el valor en la ubicación señalada por el puntero p, pero no puede cambiar p para que apunte a otra ubicación.
int const * ptr —> ptr es un puntero a una constante. Puede cambiar ptr para señalar otra variable. Pero no puede cambiar el valor señalado por ptr.
Por lo tanto, el programa anterior funciona bien porque tenemos un puntero constante y no estamos cambiando ptr para que apunte a ninguna otra ubicación. Solo estamos incrementando el valor señalado por ptr.
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