【发布时间】:2015-02-04 11:43:22
【问题描述】:
我想声明一个常量 char 数组的常量数组。如果我这样写:
const char foo[] = "Foo";
const char bar[] = "Bar";
const char* const foobar[2] = { foo, bar };
它似乎有效,但如果我尝试使用 "the spiral rule" 读取它,foobar 会被读取为:
“foobar 是一个数组 2 的常量 (??) 指向一个 char 常量的指针”
使用这个stack overflow 答案,
const 适用于它剩下的东西。如果左边什么都没有,那么它适用于它右边的东西。
第一个const 将应用于字符,第二个const 也将应用于相同的字符。
这两种阅读方式都没有意义,但代码确实起作用(至少在 Arduino [对不起] 中)。哪个const 使哪个成为常数?有没有更合乎逻辑的写法?
【问题讨论】: