#include <stdio.h>
int main() {
const char* c[] = { "ENTER","NEW","POINT","FIRST" };
const char** cp[] = { c + 3,c + 2,c + 1,c };
const char*** cpp = cp;
printf("%s", **++cpp);//输出POINT
printf("%s", *-- * ++cpp + 3);//输出ER
printf("%s", *cpp[-2] + 3);//输出ST
printf("%s", cpp[-1][-1] + 1);//输出EW
return 0;
}
难点:
1.画出多级指针的结构示意图
2.表达式计算优先级
在“*--*++cpp+3”中,先计算++cpp,然后是解引用“*”,再然后时“--”和“*”,最后才是“+3”。
3.对++,--的理解
表达式中,++和--相当于cpp=cpp+1,改变了cpp的值,这种改变对下一表达式同样适用,相当于给cpp赋了新值,这一点容易被忽略。
4.对[]的理解
例如,cpp[2]相当于*(cpp+2),注意不要忽略了还有一个解引用符号。