可能这些问题已经被问过很多次了,我还读了一些关于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);
在这种情况下,&是运营商的地址。
PID构造函数的参数列表包含几个指针。 &Input
返回Input
的地址。指针存储什么?地址!
有关address-of运算符和读取的更多信息:
https://en.cppreference.com/w/cpp/language/operator_member_access
1)&expr
...
1)如果操作数是某个对象或函数类型T的左值表达式,则运算符&创建并返回类型为T *的prvalue,具有相同的cv限定,即指向操作数指定的对象或函数....