gpt4 book ai didi

c++ - 这个 `const char*` 的断言保证是真的吗?

转载 作者:太空狗 更新时间:2023-10-29 23:26:15 24 4
gpt4 key购买 nike

<分区>

代码示例(vs2015编译运行):

#include<cassert>
using namespace std;
int main() {

const char*p = "ohoh";
const char*p1 = "ohoh";
char p3[] = "ohoh";
char p4[] = "ohoh";
assert(p == p1);//OK,success,is this always true?
assert(p3 == p4);//failed

return 0;
}

据我所知,字符串字面量存储在地址空间的readonly段,而const char*p = "ohoh";只是生成一个指针到那个位置。但是,编译器似乎只会生成该字符串文字的一个拷贝,因此 p==p1 为真。

这是一种优化,还是标准保证的东西?

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