gpt4 book ai didi

C++: Address-of dereference 和 dereference of an address-of

转载 作者:行者123 更新时间:2023-11-30 05:30:40 30 4
gpt4 key购买 nike

  1. *&x 是否总是等于 x?如果不是,什么时候不是?
  2. &*x 是否总是等于 x?如果不是,什么时候不是?

我的猜测是 (1) 总是正确的,但 (2) 并不总是正确的,因为 x 可能并不总是一个指针,所以我们不能声明 *x.

最佳答案

在您的第一个示例中,您获得了 x 的地址(它为您提供了一个指向 x 的指针),然后您将该指针推回到 x。所以是的,它应该是,除非 x 是一个重载了运算符 *& 的类。

您的第二个示例仅适用于重载了 * 运算符的 pointersclasses

如果它与原始指针一起使用,是的,它应该是相同的。你 deference x,它返回对存储在 x 中的值的引用,然后你得到存储该值的地址,当然是 x.

如果它与指向指针一起使用,并且重载了&运算符,那就不必了。

class A
{
public:
int v;
//int operator*() { return v; }
int * operator&() { return &v; }
};

A* w = new A();
int* ptr = &*w;

关于C++: Address-of dereference 和 dereference of an address-of,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35869980/

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