#include <stdio.h>
int main() {
static char*s[] = {"6642321","93456","134098","55513"};
char ** str[] = {s+3,s+2,s+1,s};
char ***p = str;
**++p;
printf("%s\n",*--*++p+2);
return 0;
}
在这段代码中,printf语句*++p
给出一个地址(S+1).在我的理解中,--(s+1)
给出了编译错误.但此代码给出的输出为42321
.为什么我会得到这样的答案.有谁能解释一下这个代码吗?