- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
*&x
是否总是等于 x
?如果不是,什么时候不是?&*x
是否总是等于 x
?如果不是,什么时候不是?我的猜测是 (1) 总是正确的,但 (2) 并不总是正确的,因为 x
可能并不总是一个指针,所以我们不能声明 *x
.
最佳答案
在您的第一个示例中,您获得了 x
的地址(它为您提供了一个指向 x
的指针),然后您将该指针推回到 x
。所以是的,它应该是,除非 x
是一个重载了运算符 *
或 &
的类。
您的第二个示例仅适用于重载了 *
运算符的 pointers
或 classes
。
如果它与原始指针一起使用,是的,它应该是相同的。你 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/
*&x 是否总是等于 x?如果不是,什么时候不是? &*x 是否总是等于 x?如果不是,什么时候不是? 我的猜测是 (1) 总是正确的,但 (2) 并不总是正确的,因为 x 可能并不总是一个指针,所以
这段代码: int main(char[][] args) { MyObject obj; obj.x; return 0; } 给我:Error: null dereference in
我想减少使用 XMLHttpRequest() 从服务器获取信息的 I/O 开销或ActiveXObject()视情况而定,通过创建一个通用函数来执行提取,然后使用 sessionStorage. 存
我对以下代码有疑问: #!/usr/bin/perl use strict; use warnings; my %dmax=("dad" => "aaa","asd" => "bbb"); my %d
int main() { char test[15] = "Hallo World"; test[1] = *"e"; } 要将第二个字母更改为 e,我必须遵循字符串 "e"。我找不到
我正在尝试通过实现一些基本数据结构来学习 Rust。在本例中,是一个 Matrix。 struct Matrix { pub nrows: uint, pub ncols: uint, p
Editor's note: This code example is from a version of Rust prior to 1.0 and is not valid Rust 1.0 co
我刚刚阅读完 rust-lang.org 上的生命周期指南并尝试实现该示例(但使用通用枚举来增加一点复杂性)。 enum PositionInfo { Position(T, T), } en
在 JavaScript 中,如何取消引用函数返回的对象? 例如: var tmp = getTextProperties(); font = tmp.font; size = tmp.siz
我是 C++ 的新手,作为练习(也许最终是 .Net 实用程序),我正在做一个指针包装器(实际上是在 C++/CLI 中,但这也适用于 C++)。这个指针包装器(称为 Apont)目前的行为就像一个指
表达式 &ptr->fld不代表取消引用,而是应将其视为 (uint32_t)ptr + offsetof (ptr, fld) .我确信 GCC 做了这种简化,但我找不到代码中的位置。 以上结果为
我现在正在试验 Rust,我真的被各种随机的编译器错误绊倒了,比如这个: error: cannot move out of dereference of `&`-pointer return
我是 Rust 的新手,正在尝试编写命令行实用程序作为学习的一种方式。 我正在获取 args 的列表并尝试匹配它们 let args = os::args() //some more code mat
我目前正在为 C 语言开发一个简单的克隆检测器,用 C++ 编写,并且不断地问自己关于效率和如何优化 C++ 代码的问题。 我有一个问题是关于如何有效地传递结构。如果给出类似于以下内容的结构: typ
我在 C# 中有一些代码使用这样的结构: ArrayList addrs = new ArrayList(); byte[] addr = new byte[8]; while (oneWire.Se
这个问题在这里已经有了答案: What's the meaning of * and & when applied to variable names? (1 个回答) 关闭 6 年前。 刚接触 C
在 boost::filesystem 中,path 类总是尝试解引用符号链接(symbolic link)。许多 API 都是为了让符号链接(symbolic link)看起来不可见。我猜他们下面的
我正在尝试使用 C# 委托(delegate)实现撤消功能。基本上,我有一个 UndoStack,它维护一个实现每个撤消操作的委托(delegate)列表。当用户选择 Edit:Undo 时,此堆栈弹
我有一个工作正常的记录器,但在内存分配方面产生了相当多的开销。下面的 Debug() 函数不是故意打印的,因为 logOutputLevel 不够高。 var logOutputLevel = 2 f
我有这个 C 代码: #include #include
我是一名优秀的程序员,十分优秀!