我去采访了.采访者提出了这个问题.在看到这个问题之后,我告诉他将会有一个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;
}
Run Code Online (Sandbox Code Playgroud)
这个怎么样 :-
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 -------------------------+
Run Code Online (Sandbox Code Playgroud)
因为您只询问以下声明p:
char **ptr[] = {s+3, s+2, s+1, s}, ***p;//Here
Run Code Online (Sandbox Code Playgroud)
是相同的:
char **ptr[] = {s+3, s+2, s+1, s};
char ***p;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
104 次 |
| 最近记录: |