#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: argv es una array de punteros de tipo char. Por lo tanto, contiene punteros de caracteres como ab, cd, etc. f (argv) en esta llamada damos la dirección del primer puntero de caracteres ab. en la función f , t = ( argv[0] += 4 (su tamaño de int) [-1] . después de esta evaluación t apunta a ij pero después de [-1] t apuntará a gh.
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