c++ - 一个简短的编程难题

标签 c++ c

以下谜题的可能解释是什么:

#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/

相关文章:

c++ - 无法使用 C++ 和 visual studio 2010 express 编译基本的 SDL 教程 - 未找到 SDL.h

c++ - 在cpp中对象初始化后设置数组的边界

c++ - Uncrustify 折叠多行函数调用

c - 制作n个自然数的数列

c++ - 是否有任何C++函数对哈希表进行排序?

c++ - 在 C++ 中调用类中的运算符函数

c++ - main.cc :5:30: fatal error: folder/file. h: 没有那个文件或目录

在 sudo 中运行程序时将目录的所有权更改为用户

c - 强制使用 `exec` 创建的程序执行无缓冲 I/O

c++ - 打印 float ,保持精度