printf("%s\n", *cpp[-2] + 3),
我的理解:cpp是三级指针,此时指向的是二级指针首地址,解引用后是 c+3,然后再+3
看别人的他是把 *cpp[-2] 转换为 * *(cpp-2)+3),他的这个我能理解,cpp-2指向二级指针首地址,然后解引用后得到一级指针地址,再解引用后得到一级指针里的"FIRST",
想问这个是怎么转换的?又怎么理解?
int main()
{
char* c[] = { "ENTER","NEW","POINT","FIRST" };
char** cp[] = { c + 3,c + 2,c + 1,c };
char*** cpp = cp;
printf("%s\n", **++cpp);
printf("%s\n", *-- * ++cpp + 3);
printf("%s\n", *cpp[-2] + 3);//怎么理解?* *(cpp-2)+3)
printf("%s\n", cpp[-1][-1] + 1);
return 0;
}
