C | Clases de almacenamiento y calificadores de tipo | Pregunta 19 – Part 3

#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.

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 *