c - 多个 const 限定符是什么意思?

标签 c constants declaration function-signature

代码:

const char* const* const* foo(int bar);

我以前见过双重常量,它们也可以防止修改指针。我一生中第一次看到三重常量。想知道它有什么用。

最佳答案

在您的示例中,除了顶层间接之外,所有 const 都符合条件。

const char            /* const qualified base level */
    *const            /* const qualified level 1 */
    *const            /* const qualified level 2 */
    *                 /* regular level 3 */
    foo(int bar);

foo 是一个接受 int 参数并返回常规指针的函数。
它返回的指针指向一个const限定的指针
反过来,它指向另一个 const 限定指针
指向 const 限定的 char

关于c - 多个 const 限定符是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23043575/

相关文章:

c++ - 在 C++ 函数中定义时,const 变量的行为是否类似于静态变量?

c - 解码 C 声明并使用它

c++ - 如何从 Linux 上的动态库加载静态函数(在 C 中)

c - 如何为在 Vim 中打开的每个新文件自动运行命令

c - C 中的常量值错误

arrays - 是否可以单独声明 const 数组项值

C++ 数组/指针声明问题

c++ - Class声明中,为什么构造函数中的参数不能和私有(private)部分定义的变量重名?

c - 如何在 C 语言中跳过/忽略循环内的特定位置(列表上)?

c - 如何防止磁盘分区显示在 Windows 资源管理器中?