El valor impreso por el siguiente programa es
void f(int* p, int m) { m = m + 5; *p = *p + m; return; } void main() { int i=5, j=10; f(&i, j); printf("%d", i+j); }
(A) 10
(B) 20
(C) 30
(D) 40
Respuesta: (C)
Explicación:
#include"stdio.h" void f(int* p, int m) { m = m + 5; *p = *p + m; return; } int main() { int i=5, j=10; f(&i, j); printf("%d", i+j); }
Para i, se pasa la dirección. Para j, se pasa el valor. Entonces, en la función f, p contendrá la dirección de i y m contendrá el valor 10. La primera declaración de f() cambiará m a 15. Luego, se agregará 15 al valor en la dirección p. Hará i = 5+15 = 20. j seguirá siendo 10. imprimir declaración imprimirá 20+10 = 30. Entonces la respuesta es (C).
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