¿Cuál es la salida en una máquina de 32 bits con un compilador de 32 bits?
#include <stdio.h> rer(int **ptr2, int **ptr1) { int* ii; ii = *ptr2; *ptr2 = *ptr1; *ptr1 = ii; **ptr1 *= **ptr2; **ptr2 += **ptr1; } void main( ) { int var1 = 5, var2 = 10; int *ptr1 = &var1, *ptr2 = &var2; rer(&ptr1, &ptr2); printf(“%d %d “, var2, var1); }
(A) 60 70
(B) 50 50
(C) 50 60
(D) 60 50
Respuesta: (D)
Explicación: Bajo funciones rer:
ptr2 = 3000 ptr1 = 4000 ii = 1000 *(3000) = *(4000) i.e., outer ptr1 = 2000 *(4000) = 1000 i.e., outer ptr2 = 1000 **ptr1 *= **ptr2 will convert var1 = 50 **ptr2 += **ptr1 will convert var2 = 60
Por lo tanto, se imprime 60 50.
#include <stdio.h> int rer(int **ptr2, int **ptr1) { int* ii; ii = *ptr2; *ptr2 = *ptr1; *ptr1 = ii; **ptr1 *= **ptr2; **ptr2 += **ptr1; } ; int main( ) { int var1 = 5, var2 = 10; int *ptr1 = &var1, *ptr2 = &var2; rer(&ptr1, &ptr2); printf("%d %d ", var2, var1); }
La opción (D) es correcta.
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