Suponga que el tamaño de int es 4.
#include <stdio.h> void f(char**); int main() { char *argv[] = { "ab", "cd", "ef", "gh", "ij", "kl" }; f(argv); return 0; } void f(char **p) { char *t; t = (p += sizeof(int))[-1]; printf("%s\n", t); }
(A) ab
(B) cd
(C) ef
(D) gh
Respuesta: (D)
Explicación: La expresión (p += sizeof(int))[-1] se puede escribir como (p += 4)[- 1] que se puede escribir como (p = p+4)[-] que devuelve la dirección p+3 que es la dirección del cuarto elemento en argv[].
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