gpt4 book ai didi

c++ - 指向文字的指针?

转载 作者:行者123 更新时间:2023-12-02 05:33:10 25 4
gpt4 key购买 nike

在阅读C++ Primer时,我遇到了这一行:
const char *cp = "Hello World";

据我了解,“Hello World”是一个字符串文字,它是一个常量字符数组。由于数组会衰减为指向数组中第一个元素的指针。这是否意味着 cp 指向 H 这是一个文字?是不是不可能有一个指向文字的指针,因为指针必须指向内存中对象的地址?

最佳答案

文字类型:boolean、integer、floating、character 和 nullptr 的存储类型未指定,因此它们不需要在内存中拥有存储位置。

指定文字字符串类型的存储类型:“...字符串文字具有静态存储持续时间,因此在程序的整个生命周期中都存在于内存中...”来源: https://en.cppreference.com/w/cpp/language/string_literal

因此,可以获取文字字符串的地址并将其存储在 const char * 中。

按照@MichaelKenzel的建议:

来自 C++17 标准草案 (n4659) https://timsong-cpp.github.io/cppwp/n4659/lex.string#16

Evaluating a string-literal results in a string literal object with static storage duration, initialized from the given characters as specified above. Whether all string literals are distinct (that is, are stored in nonoverlapping objects) and whether successive evaluations of a string-literal yield the same or a different object is unspecified. [ Note: The effect of attempting to modify a string literal is undefined.  — end note ]

关于c++ - 指向文字的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59120047/

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