【发布时间】:2014-06-18 04:06:54
【问题描述】:
我一直在想,为什么我不能这样写我的代码:
char myChar[50];
myChar = "This is a really cool char!";
或者至少是这样的:
char myChar[50];
myChar[0] = "This is a really cool char!";
对我来说,第二种方式更有意义,因为我会 在我希望它开始将字母移动到 数组。
有人知道为什么 C++ 不这样做吗?你能告诉我背后的原因吗 正确的做法?
提前谢谢大家!
【问题讨论】:
-
在第二个代码示例中,您尝试将字符串文字分配给
char,这使得 零 有意义。 -
一般来说,C++ 数组存在 C 数组的限制,如果你想要更高级的东西(比如赋值),请使用相应的 STL 类 - 在这种情况下为
std::string。 -
@CaptainObvlious:在已经知道为什么它不起作用的情况下,当然。但是,断章取义,没有什么特别的理由表明该语言不能被设计成允许这样做。事实上,当您查看
std::string(这是本机字符串应该 完成的方式)时,语法几乎完全相同:字节会自动为您复制。那么它又如何使“零有意义”呢?