C语言中字符数组的一个问题 财富值31

2016-10-25 13:54发布

int main() {     char s1[50], s2[50] = "hello";     s1 = s2;     printf("%s", s1);     }     

s1=s2那句报错了, 问题到底出在哪? 求解

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答

最后那个括号没对齐,对齐就好了

程序在编译好之后,s1,s2的内部就分配好了,可以看成指向分配内存的首地址。如果s1=s2不报错,就相当于s1和s2都指向s2指向的内存,同时s1指向的内存就无法访问了。

字符数组S1 S2的本身是地址,它是常量。把S1=S2就是把一个常量赋值给另一个常量当然是错误的。
字符串的赋值可以用String里相应的函数

一周热门 更多>