什么是常数数组?
如果我们定义
const char hex_char[] = {
'0', '1', '2', '3',
'4', '5', '6', '7',
'8', '9', 'A', 'B',
'C', 'D', 'E', 'F'
};
然后,它不应该被程序修改;这是什么意思?
答案 0 :(得分:13)
这意味着您无法修改其内容。例如,您不允许执行hex_char[i] = 'A'
,这将导致编译时错误。
答案 1 :(得分:5)
尝试修改const限定对象会产生未定义的行为。有些C编译器甚至将它们存储在只读的内存段中。
正如Grijesh Chauhan指出的那样,直接修改数组会给你一个编译器错误。但是使用memcpy
,strcpy
或类似功能可能只会给您警告。但是,这些也不合法。所以不要这样做!