gpt4 book ai didi

c++ - 为什么我们可以让 char 类型的指针指向 const*

转载 作者:行者123 更新时间:2023-11-30 17:13:52 24 4
gpt4 key购买 nike

有一行代码是这样的: char* arr="Hello" 。我听说字符串 Hello 位于某个地方,用于存放常量内容,例如 const 变量的值(是吗?)。我的困惑是,如果这个假设成立,为什么我们可以让 char* 类型的指针指向 const ,让人们有机会更改 const "Hello"字符串。我的意思是,对于像 C 这样具有类型检查的语言允许这种情况发生,这不是不合理吗?

最佳答案

看,这里的“Hello”是一个字符串文字,但按照标准它不是const

大多数编译器(包括 gcc)将字符串文字放入只读内存中。标准仅要求不要修改字符串文字。

引用 C11 标准,第 §6.4.5 章,字符串文字

If the program attempts to modify such an array, the behavior is undefined.

关于c++ - 为什么我们可以让 char 类型的指针指向 const*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30572201/

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