3

What are constant arrays?

If we define

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

Then, it should not be modified by program; What does it mean?

4

2 回答 2

13

这意味着您不能修改其内容。例如你不允许这样做hex_char[i] = 'A',它会导致编译时错误。

于 2013-06-18T11:22:46.247 回答
5

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

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

于 2013-06-18T11:29:29.803 回答