【发布时间】:2013-02-27 14:43:39
【问题描述】:
根据 C++ 标准,字符串文字类型是 array of const char
auto constStr = "aaa";
char* nonConstStr = constStr; //Error here, cannot convert from 'const char *' to 'char *'
char* stillNonConstStr = "aaa"; //Why I don't have error here?
你能解释一下为什么在第 3 行我没有收到错误吗?
【问题讨论】:
-
@Rapptz 我似乎在 C++11 标准中找不到相同的 a 子句允许相同的“向后兼容转换”。我想它已被删除,所以链接的问题现在并不是真正的重复。
-
因为它在历史上是允许的,而不是破坏成千上万的现有程序。
-
@Rapptz 关于 C 的问题+答案如何与关于 C++ 的问题重复?尤其是在两种语言实际上不同的地区。
-
@Angew 因为它们在这种情况下并没有你想象的那么大。