C | Puntero avanzado | Pregunta 7

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *