Considere los siguientes dos segmentos de código C. Y y X son arrays unidimensionales y bidimensionales de tamaño n y n × n respectivamente, donde 2 ≤ n ≤ 10. Suponga que en ambos segmentos de código, los elementos de Y se inicializan en 0 y cada elemento X[i][j] de la array X se inicializa en i + j. Además, suponga que cuando se almacenan en la memoria principal, todos los elementos de X están en el mismo marco de página de la memoria principal.
Code segment 1: // initialize elements of Y to 0 // initialize elements X[i][j] of X to i+j for (i = 0; i < n; i++) y[i] + = X[0][i]; Code segment 2: // initialize elements of Y to 0 // initialize elements X[i][j] of X to i+j for (i = 0; i < n; i++) y[i] + = X[i][0];
¿Cuál de las siguientes afirmaciones es/son correctas?
S1: Final contents of array Y will be same in both code segments. S2: Elements of array X accessed inside the for loop shown in code segment 1 are contiguous in main memory. S3: Elements of array X accessed inside the for loop shown in code segment 2 are contiguous in main memory.
(A) Solo S2 es correcto
(B) Solo S3 es correcto
(C) Solo S1 y S2 son correctos
(D) Solo S1 y S3 son correctos
Respuesta: (C)
Explicación: En C, las arrays 2D se almacenan en el orden principal de las filas . Por lo tanto, S2 es correcto, pero S3 no es correcto.
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