以下谜题的可能解释是什么:
#include <stdio.h>
int main(){
static char *s[] = {"black","white","yellow","violet"};
char *ptr[] = {s+3,s+2,s+1,s},***p;
p = ptr;
*++p;
printf("%s",*--*++p + 3);
}
output .
最佳答案
p = ptr;
这不是一个谜题。这是一段无效的代码,因为它将 char**
分配给 char***
。其实问题出在数组声明上
s+3
的类型为 char**
,但您将 ptr
声明为 char*
数组。
关于c++ - 一个简短的编程难题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3839343/