gpt4 book ai didi

c++ - 关于在 constexpr 指针和引用的上下文中需要固定地址的说明

转载 作者:行者123 更新时间:2023-11-28 04:54:24 24 4
gpt4 key购买 nike

在 Primer 中(在研究 constexpr 时)我发现:

variables defined inside a function ordinarily are not stored at a fixed address. Hence, we cannot use a constexpr pointer to point to such variables

  1. 它是否对编译时计算的所有值都有效,还是只是使用关键字 constexpr 的约束?
  2. const 关键字是否不能确保对象在编译时确定(评估其值),尽管它是由文字初始化的?
  3. 为什么用 constexpr 关键字定义一些引用:

          int i=9;   //Declared as global variable
    constexpr int &ref=i;

因为 constexpr 意味着顶级 constness 这意味着 ref 将是常量(即使 constexpr 没有被使用,因为我们不能引用任何其他变量)并且它无法提供 const 引用所做的事情?

最佳答案

你似乎有一些误解。

constexpr 值几乎是唯一表现得像编译时常量的值。所以在第一季度,你做出了一个不存在的区别。您可以将任何地址存储在常规 const 指针中,即 T* const

Q2 几乎是同样的误解。您可以将用户的输入存储在 const std::string 中。这仅意味着您以后无法更改字符串。

Q3 只是语言没有试图禁止不必要的事情的一个例子。您还可以做上百万件其他多余的事情。

关于c++ - 关于在 constexpr 指针和引用的上下文中需要固定地址的说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47495349/

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