c++ - x = &(*variable) 与 x = variable 有何不同?

标签 c++ pointers

我一直在尝试通过浏览一些项目来理解 C++,我遇到了这个:

vector<Circle>::iterator circleIt = mCircles.end();
..
mCurrentDragCircle = &(*circleIt);

为什么要取消引用然后再次引用它?

最佳答案

* 运算符为 iterator 类重载。它不执行简单的取消引用。相反,它返回对当前指向的变量的引用。对此使用引用运算符返回指向变量的指针。

使用 mCurrentDragCircle = circleIt; 会将迭代器分配给您的字段。

关于c++ - x = &(*variable) 与 x = variable 有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036547/

相关文章:

c++ - 如何禁用 Googletest (gtest) 参数化测试?

c++ - QMetaObject 上的 lua_newuserdata 位置新增

c++ - 函数中指向 vector vector 的指针给出 'expression must have pointer type' 错误

c - 是否可以从嵌套函数调用返回的对象中获取指针?

c - 使用指针在按值传递函数中模拟按引用传递(C 和 C++)

c++ - 错误 : invalid conversion from 'int' to 'int*' [-fpermissive]

c - 函数参数中的 "int (*)[]"是否衰减为 "int **"?

c++ - 在类之间传递值

c++ - C++中的赋值运算符

c++ - 文本不会在屏幕上输出 C++/OpenGL