attitude.roll和attitude->roll有什么区别
时间: 2023-10-04 18:12:34 浏览: 40
attitude.roll 和 attitude->roll 都是用于访问结构体中的 roll 属性的,不同点在于前者是使用点符号操作符来访问 roll 属性,而后者是使用指针符号操作符来访问 roll 属性。
如果 attitude 是一个结构体变量,那么使用点符号操作符来访问其属性比较方便。例如:
```
struct Attitude {
float roll;
float pitch;
float yaw;
};
Attitude myAttitude;
// 设置 roll 属性
myAttitude.roll = 0.5;
// 访问 roll 属性
float rollValue = myAttitude.roll;
```
如果 attitude 是一个指向结构体的指针,那么使用指针符号操作符来访问其属性比较方便。例如:
```
struct Attitude {
float roll;
float pitch;
float yaw;
};
Attitude* myAttitudePtr = new Attitude();
// 设置 roll 属性
myAttitudePtr->roll = 0.5;
// 访问 roll 属性
float rollValue = myAttitudePtr->roll;
```
在以上示例中,myAttitude.roll 和 myAttitudePtr->roll 都是访问 Attitude 结构体中的 roll 属性,但是使用指针符号操作符更加方便,因为我们不需要先解引用指针再使用点符号操作符来访问属性。