📜  C |指针基础问题17

📅  最后修改于: 2021-05-29 12:14:07             🧑  作者: Mango

#include 
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)绝对
(B)光盘
(C) ef
(D) gh答案: (D)
说明: argv是char类型的指针数组。因此,它包含了诸如AB,CD等。f(ARGV)在此调用字符指针我们给出的第一个字符指针AB的地址。在函数f中,t =(argv [0] + = 4(其int的大小)[-1]。在此评估之后,t指向ij,但在[-1]之后t指向gh。
这个问题的测验