c++ - 指针引用类型的序列

标签 c++ pointers pass-by-reference

How to pass a pointer variable as a reference parameter?

关于这个问题我还有一个问题。

问题中的回答者使用int*&作为参数数据类型,但我不明白指针和引用数据类型的顺序。

在我看来,int&*对我来说看起来更实用,所以我尝试用它来编译,但这是不允许的。

我想清楚地理解这个逻辑。

我认为 int*& a 就像 int*(int& a) 一样,所以它就像一个引用的指针,但显然,它恰恰相反。

为什么不能使用int&*作为指针引用的含义?

最佳答案

C++ 类型以名称为中心。 int*&foo 是你应该这样想的。

首先,我们有 &foo —— foo 是一个引用。引用什么? *&foo -- 一个指针。指向什么的指针? int*&foo 一个整数。

原始的 C 类型规则甚至旨在“演示如何使用它们”。因此 int *fooint = *foo 有效表达式的简写,或者 *foo 生成一个 int& 并不完全是这样工作的。

关于c++ - 指针引用类型的序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55317871/

相关文章:

c++ - 在 DLL 中调用非导出函数

c++ - FlannBasedMatcher::match 中的掩码无法正常工作

c++ - const 指针分配给一个指针

c++ - 指针数组声明的问题

c++ - 如何保持循环直到密码满足 C++ 中的条件?

c++ - 将 SDL2 箭头/WASD 键转换为玩家移动的最佳/最可靠方法是什么?

python - 为什么 Python 运行 C++ 函数比 C++ 通过其 main() 函数运行自己的函数更快?

c - 记录在 C 中没有更新,因为结构指针没有更新

c - 为什么我们不能在 C 中通过引用传递指针?

arrays - 将数组指针传递给另一个类并为将来保留一个引用 - Swift