gpt4 book ai didi

c++ - #define 或 char* 字符串驻留在内存中的什么位置?

转载 作者:太空狗 更新时间:2023-10-29 20:28:09 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Is a string literal in c++ created in static memory?

如果我这样做:
const char* StringPtr = "string0",
那么它肯定在内存中的某个地方,我可以得到 StringPtr 的地址。

但如果我这样做:
#define STRING0 "string0",那么STRING0在哪里呢?
或者,STRING0 是否不存在于内存中,因为编译器将 STRING0 的使用替换为 “string0”

据我所知,每当您在代码中写入任何字符串时,编译器都必须将它放在内存中的某个位置,但我不知道它的确切行为。
但我对此不是很确定。

谁能解释编译器如何处理 #define 编辑或声明为 char* 的字符串?

还有,哪个比较好?要#defineextern const char*extern const std::string头文件中的字符串?

谢谢!

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