【发布时间】:2013-07-06 07:57:35
【问题描述】:
1.char str[] = "hello"; //legal
2.char str1[];
str1 = "hello"; // illegal
我知道“hello”从字符串文字池中返回字符串文字的地址,该地址不能直接分配给数组变量。在第一种情况下,“hello”文字中的字符被一个接一个地复制到数组中,并在末尾添加了一个 '\0'。
这是因为赋值运算符“=”在这里被重载以支持这一点吗?
我还想知道初始化不同于赋值的其他有趣案例。
【问题讨论】:
-
其实
char str1[];也是非法的。 -
@banarun 是的,你是对的。我们需要声明数组的大小。
标签: c initialization assignment-operator