char* pStr = new String("Hello");
char* s = "Hello";
Run Code Online (Sandbox Code Playgroud)
第一个是正确的吗?这两者有什么区别吗?我的猜测是第一个是在堆上分配的,另一个是堆栈.我正确还是有其他差异?
Arm*_*yan 10
第一个是不正确的,不会编译,因为String在C或C++中没有这样的东西.第二个将编译,并且在C(afaik)中很好.但是,在C++中,char*不推荐使用字符串文字转换.您可以在以后无意中写出s[0] = 'X';未定义的行为.
正确的方法是使用const(在C++中)
const char * s = "Hello";
Run Code Online (Sandbox Code Playgroud)
或者,更好的是,使用字符串
std::string s("Hello");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
813 次 |
| 最近记录: |