Const 多维数组

标签 c multidimensional-array global-variables constants

在 C 中,我如何将 const 修饰符(或任何其他修饰符)添加到全局多维数组,以便变量和它保存的值都是常量。

例如,我将如何为此添加一个 const 修饰符:

byte fruitIds[][2] = { { 0x01, 0x02}, {0x02, 0x03} }

所以在作业结束时你不能这样做:

fruitIds = vegetableIds;

或者这个:

fruitIds[0] = {0x02, 0x03};

或者这个:

fruitIds[0][0] = 0x02;

最佳答案

数组已经是不可修改的左值。这只是意味着您需要使值const:

const byte fruitIds[][2] = { { 0x01, 0x02}, { 0x02, 0x03} };

您帖子中的这些作业:

fruitIds = vegetableIds;
fruitIds[0] = {0x02, 0x03};

已经是非法的。后者甚至不是有效语法,但我从 clang 尝试执行前者时收到一条 read-only variable is not assignable 消息。

关于Const 多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14616750/

相关文章:

c - 访问 union 中不同类型的未分配值

c++ - 如何找到传递给函数的矩阵的大小?

c - 在 C 中传递二维数组的行

php - 重新排列 php 关联数组

Javascript 范围、安全性和扩展

c - 使用C的频率阵列动态分配

c - 如何从 i2c io 扩展器 linux 请求 GPIO 中断(失败并显示 -EINVAL)

javascript - 如何阻止变量在 JavaScript 中按 F5 时被破坏

c - 初等阿贝尔群

c++ - MFC : How to use C++ Global Object in C