什么是常数阵列?

时间:2013-06-18 11:21:17

标签: c arrays

什么是常数数组?

如果我们定义

const char hex_char[] = {
                           '0', '1', '2', '3', 
                           '4', '5', '6', '7', 
                           '8', '9', 'A', 'B', 
                           'C', 'D', 'E', 'F'
                        };

然后,它不应该被程序修改;这是什么意思?

2 个答案:

答案 0 :(得分:13)

这意味着您无法修改其内容。例如,您不允许执行hex_char[i] = 'A',这将导致编译时错误。

答案 1 :(得分:5)

尝试修改const限定对象会产生未定义的行为。有些C编译器甚至将它们存储在只读的内存段中。

正如Grijesh Chauhan指出的那样,直接修改数组会给你一个编译器错误。但是使用memcpystrcpy或类似功能可能只会给您警告。但是,这些也不合法。所以不要这样做!