p
未申报,会出现错误。但是当我在我的电脑上运行程序时,我对答案/输出感到惊讶,ink
也没有任何错误。请帮我理解这个问题。
#include <iostream>
using namespace std;
int main()
{
static char *s[] = {"black", "white", "pink", "violet"};
char **ptr[] = {s+3, s+2, s+1, s}, ***p;//Here
p = ptr;
++p;
cout << **p+1;
return 0;
}
答案 0 :(得分:8)
这个怎么样: -
static char *s[] = {"black", "white", "pink", "violet"};
^ ^ ^ ^
| | | |
| | | |
| | | |
+------------+ | |
+---|---|----+ |
| | | |
+ ---|---|---|------------+
| | | |
char **ptr[] = {s+3, s+2, s+1,s};
^ ^
char ***p; | |
| |
p=ptr ; --------+ |
|
++p; -----------------+ {'p','i','n','k'}
^
**p+1 -------------------------+
答案 1 :(得分:6)
因为您只询问p
:
char **ptr[] = {s+3, s+2, s+1, s}, ***p;//Here
与:
相同char **ptr[] = {s+3, s+2, s+1, s};
char ***p;