Const多维数组

时间:2013-01-31 00:59:14

标签: c multidimensional-array global-variables const

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

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

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

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

fruitIds = vegetableIds;

或者这个:

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

或者这个:

fruitIds[0][0] = 0x02;

1 个答案:

答案 0 :(得分:4)

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

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

您帖子中的这些作业:

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

已经非法了。后者甚至不是有效的语法,但是我从read-only variable is not assignable获得clang消息,试图做前者。