可以在VC或gcc上正确编译以下代码:
char *str = "I am a const!";
str[2] = 'n';
Run Code Online (Sandbox Code Playgroud)
但是,显然存在运行时错误.因为"我是一个常客!" 是一个const char*,为什么编译器不会给出错误甚至是警告?
此外,如果我定义char a[] = "I am const!",a可以修改所有元素,为什么这次字符串文字成为nonconst?
nos*_*nos 12
就C而言,该字符串文字不是const,它是char[14]您分配给char*的一个,这是完全正常的.
但是,C确实说改变字符串文字是未定义的行为.
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |