#include
char *c[] = {"GeksQuiz", "MCQ", "TEST", "QUIZ"};
char **cp[] = {c+3, c+2, c+1, c};
char ***cpp = cp;
int main()
{
printf("%s ", **++cpp);
printf("%s ", *--*++cpp+3);
printf("%s ", *cpp[-2]+3);
printf("%s ", cpp[-1][-1]+1);
return 0;
}
(A)测试sQuiz Z CQ
(B) MCQ测验Z CQ
(C)测试测验Z CQ
(D) GarbageValue sQuiz Z CQ答案: (A)
说明:让我们首先考虑** ++ cpp。前缀增加和取消引用的优先级相同,并且两者的关联性从右到左。因此,表达式的计算结果为**(++ cpp)。因此cpp指向c + 2。因此我们得到“ TEST”作为输出。请注意取消引用运算符两次。
同样,您可以借助优先级表自己尝试其他表达式。
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。