在constchar*上分配两次

const char* str ="Hello World!"
str = "HELLO!"

在此代码中,将字符串“Hello World!” 被从记忆中抹去还是会被留下?

回答

这不是由 C++ 标准指定的。您的编译器可以在这里做任何它想做的事情,包括甚至不首先存储原始字符串,并且只有效地编译以下代码:

const char* str = "HELLO!"

您的编译器可以证明执行此优化没有可观察到的效果,并且 C++ 标准允许 C++ 编译器实现任何没有可观察到的效果的优化。

所以这里发生的事情完全取决于你的 C++ 编译器。


以上是在constchar*上分配两次的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>