gpt4 book ai didi

c++ - const char * 和 char *

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:09:53 30 4
gpt4 key购买 nike

我明白了

char *s = "Hello World!" ; 

存储在只读内存中,不能通过指针修改字符串文字。

这和

有什么不同
const char *s = "Hello World!"; 

另外'string'的类型是char * 还是const char * ?

最佳答案

区别在于后者合法,前者不合法。这是在 C++11 中所做的更改。形式上,"Hello World!" 的类型为 const char[13];它可以转换为 const char*。在过去,它的类型可能是char[13],可以转换为char*。 C++ 通过添加 const 更改了数组的类型,但保留了对 char* 的转换,以便使用 char* 的现有 C 代码将在 C++ 中工作,但修改指针指向的文本会产生未定义的行为。 C++11 删除了到 char* 的转换,所以现在你只能合法地做

const char *s = "Hello world!";

关于c++ - const char * 和 char *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15704383/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com