澄清并记住 C 中的 const 用法

标签 c

<分区>

argv 是指向字符的常量指针数组

char * const argv[] // 1

argv 是指向字符的指针数组,是常量

const char * argv[] // 2

是否有记住数字 1 的提示?

最佳答案

const char * argv[] // 2

也可以写成:

char const * argv[] // 3

因为 C 不关心 const 在类型中的顺序。如果这样写,那么实际上 const 就是关键字 const 左边的东西。 const 位于第一个的形式是该规则的一个异常(exception);但在那种情况下,const 的左边没有任何内容,所以根据这个经验法则很容易避免这种情况。

char*             // mutable pointer to mutable char
char const*       // mutable pointer to constant char
char * const      // constant pointer to mutable char
char const* const // constant pointer to constant char

关于澄清并记住 C 中的 const 用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681429/

相关文章:

c - 为什么数组不接受空终止符?

复制指针值

c - 在移位操作中使用 size_t 进行计数是否合适?

c++ - 如何配置cppcheck以检测linux源代码中的内存泄漏

c++ - Solaris Studio 12.2 C++ 编译器的 -xc99=all 等效项是什么?

c - 线程中的私有(private)变量

c - 中止(核心转储)与 *** 错误在 `python3.6' : corrupted size vs. prev_size:0x0000000000e018e0 ***

c - 伪 3D 墙(自上而下的光线转换,有点)

c - 如何创建给定大小的数据类型

c - 不中断切换和 i++ 与++i