注册 登录
编程论坛 C语言论坛

关于常量的问题,到底有几个地方存放着定义的常量,为什么我可以修改.

a451410 发布于 昨晚 20:08, 35 次点击
如下图,我在main函数里面和外面分别定义了两个常量,并用char数组接受.
标红处是我的疑问,为什么我可以修改这两个数组内的值,为什么在函数内定义的会被重新拷贝一份,
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2024-11-22 20:16编辑过]

1 回复
#2
forever74昨晚 21:12
首先,您使用的都是数组,而普通的没有const修饰的数组肯定是可以修改的。
其次,字符串常量这个东西,在现代C语言里的学名叫做字符串字面量。而修改字符串字面量的内容这个动作是未定义行为——就算是允许修改也并不违例。
最后,全局变量是编译期初始化的,普通局部变量是运行期初始化的,而字符数组的初始化自然就表现为字符串复制。
1