* vs & Arduino Class

* vs & Arduino Class

本文关键字:Class Arduino vs      更新时间:2023-10-16

可能这类问题已经被问了很多次了,我也读了一些关于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 的地址。指针存储什么?地址!

有关地址运算符的更多信息,请阅读:

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

1( 和 expr

1( 如果操作数是某个对象或函数的左值表达式 类型T,运算符并创建并返回类型为T*的prvalue,其中 相同的简历资格,即指向对象或函数 由操作符指定。