Рубрики

C | Расширенный Указатель | Вопрос 7

Предположим, что размер int равен 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
(С) эф
(D) гх

Ответ: (D)
Объяснение: Выражение (p + = sizeof (int)) [- 1] можно записать в виде (p + = 4) [- 1], которое можно записать в виде (p = p + 4) [-], которое возвращает адрес p +3, который является адресом четвертого элемента в argv [].
Тест на этот вопрос

Рекомендуемые посты:

C | Расширенный Указатель | Вопрос 7

0.00 (0%) 0 votes