C | Conceptos básicos del puntero | Pregunta 17

Suponga que float toma 4 bytes, prediga la salida del siguiente programa.

#include <stdio.h>
  
int main()
{
    float arr[5] = {12.5, 10.0, 13.5, 90.5, 0.5};
    float *ptr1 = &arr[0];
    float *ptr2 = ptr1 + 3;
  
    printf("%f ", *ptr2);
    printf("%d", ptr2 - ptr1);
  
   return 0;
}

(A) 90.500000
3

(B) 90.500000
12
(C) 10.000000
12
(D) 0.500000
3

Respuesta: (A)
Explicación: Cuando agregamos un valor x a un puntero p, el valor de la expresión resultante es p + x*sizeof(*p) donde sizeof(*p) significa el tamaño del tipo de datos apuntado por p. Es por eso que ptr2 se incrementa para apuntar a arr[3] en el código anterior. La misma regla se aplica para la resta. Tenga en cuenta que solo se pueden sumar o restar valores enteros de un puntero. También podemos restar o comparar dos punteros del mismo tipo.

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 *