gpt4 book ai didi

c++ - 指向 C++ 中的引用

转载 作者:搜寻专家 更新时间:2023-10-31 00:10:56 25 4
gpt4 key购买 nike

所以我试图理解指针和引用。

假设我们有以下内容:

int val = 100;
int *ip = &val;

为什么这与像这样简单地指向 val 不同:

int val = 100;
int *ip = val;

最佳答案

你的两个例子都不包含指向引用的指针:

  • 第一个示例有一个指向 int 的指针,使用 address-of 运算符正确初始化 &
  • 第二个示例有一个指向 int 的指针,未正确初始化为 val 本身的

通常,您不会直接为指针赋值:通常,您需要寻址运算符、隐式指针转换或一些指针算法。虽然在特定硬件上分配一个众所周知的地址也是可能的,但编译器工具链通常会提供将其保留在程序之外的方法。因此,如果您看到赋值 int *ip = 100,那几乎可以肯定是不正确的。

如果你想要一个引用,像这样声明它:

int val = 100;
int &ref = val;

现在您可以创建一个指向该引用的指针,如下所示:

int *ipRef = &ref;

由于 ref 表示 val 的别名,因此 ipRef 将与示例中的 ip 具有相同的值(demo)。

关于c++ - 指向 C++ 中的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35813961/

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