Considere un compilador donde int toma 4 bytes, char toma 1 byte y puntero toma 4 bytes.
#include <stdio.h> int main() { int arri[] = {1, 2 ,3}; int *ptri = arri; char arrc[] = {1, 2 ,3}; char *ptrc = arrc; printf("sizeof arri[] = %d ", sizeof(arri)); printf("sizeof ptri = %d ", sizeof(ptri)); printf("sizeof arrc[] = %d ", sizeof(arrc)); printf("sizeof ptrc = %d ", sizeof(ptrc)); return 0; }
(A) tamaño de arri[] = 3
tamaño de ptri = 4 tamaño de
arrc[] = 3
tamaño de ptrc = 4
(B) tamaño de arri[] = 12 tamaño de
ptri = 4 tamaño de
arrc[] = 3 tamaño de
ptrc = 1
(C) tamaño de arri[] = 3
tamaño de ptri = 4 tamaño de
arrc[] = 3 tamaño de
ptrc = 1
(D) tamaño de arri[] = 12 tamaño de
ptri = 4 tamaño de
arrc[] = 3
tamaño de ptrc = 4
Respuesta: (D)
Explicación:El tamaño de una array es el número de elementos multiplicado por el tipo de elemento, por eso obtenemos sizeof arri como 12 y sizeof arrc como 3. El tamaño de un puntero es fijo para un compilador. Todos los tipos de puntero toman el mismo número de bytes para un compilador. Por eso obtenemos 4 tanto para ptri como para ptrc.
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