取消引用指针的地址
Address of de-referenced pointer?
我正在处理其他人正在工作的代码(Qt桌面应用程序),发现了这个:
connect( &*mpMainWin, SIGNAL(whatever()), this, SLOT(whatever()) ));
我理解&*mpMainWin
部分有一些困难。据我所知,它返回被取消引用的指针mpMainWin
的地址。
但是mpMainWin
已经拥有该地址,所以直接将其作为参数应该会得到相同的结果。
所以,如果我没有遗漏任何东西,而且我的逻辑是正确的,那么做这样的事情的原因是什么?如果有,我们应该在什么时候使用这种语法?
这可以用作将智能指针(即不是真正的指针,而是实现operator*()
的类)转换为普通指针的技巧。如果不了解mpMainWin
是如何声明的,就无法判断这里是否是这样。如果mpMainWin
是一个以yes开头的纯指针,那么&*mpMainWin
与mpMainWin
相同。
相关文章:
- C++ 指针的内存地址和指向数组的内存地址如何相同?
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 将地址分配给本地指针后,公共对象的变量将消失
- 为什么指针不写入类的地址?
- CUDA:统一内存和指针地址的更改
- 为什么 vector 的随机访问迭代器给出与指针不同的内存地址?
- 如何从绝对地址的 C 样式指针创建对C++对象的引用
- 当我在 C++ 中将派生类的指针分配给指针时,地址会更改
- 是否可以仅通过将分配的指针地址存储在C++中来分析内存?
- 如何在程序集函数中将元素数组作为参数传递时转发 ARM 寄存器的地址指针
- 如何使用构造函数初始化内存地址(指针变量)?
- 数组基础地址指针
- 如何在不使用返回的情况下从函数获取变量的地址(指针)
- 保存QWidgets的地址/指针
- C++ 读取内存地址/指针和偏移量
- 从存储在 CTreeCtrl 的 LPARAM 中的结构中检索地址/指针 (IXMLDOMNode*) - 不起作用
- 简单的C++地址/指针澄清
- 如何获取成员函数的地址指针
- 当“按引用传递”成为强制传递而不是按地址/指针传递时
- C++ 为什么不是同一个地址(指针)