作者:知乎用户
链接:https://www.zhihu.com/question/28191923/answer/40028231
来源:知乎
C语言标准规定数组的值可以改变,而修改字符串字面量的值的结果是未定义的(详见分割线后,感谢 @Sunchy321 指正)。char s[LEN]和char *s这两个s不是一种东西。这个问题编译器的具体实现一般是这样的:
char s[10] = "whatever";
也相当于
char s[10] = {
'w','h','a','t','e','v','e&#