* vs&Arduino Class

问题描述 投票:-3回答:1

可能这些问题已经被问过很多次了,我还读了一些关于C ++中的指针和引用的博客。我对C ++的经验有限。但是,我正在浏览Arduino的PID库中的以下代码,我无法理解在对象实例化过程中使用的“&”看起来像是通过引用传递。但为什么班级使用“*”?

**************** Class instantiation ******************

PID myPID(&Input, &Output, &Setpoint, Kp, Ki, Kd, DIRECT);    

**************** Code for class definition ******************

PID(double*, double*, double*, Input, Output,double, double, double, int, int);
c++ pointers arduino pass-by-reference
1个回答
1
投票

在这种情况下,&是运营商的地址。

PID构造函数的参数列表包含几个指针。 &Input返回Input的地址。指针存储什么?地址!

有关address-of运算符和读取的更多信息:

https://en.cppreference.com/w/cpp/language/operator_member_access

1)&expr

...

1)如果操作数是某个对象或函数类型T的左值表达式,则运算符&创建并返回类型为T *的prvalue,具有相同的cv限定,即指向操作数指定的对象或函数....

© www.soinside.com 2019 - 2024. All rights reserved.