struct circle {
int center;
int radius;
};
struct circle *cir;

cir.center
cir->radius
(cir.radius)
(cir->center)


最后4行有什么区别?我知道cir.center正在访问变量cir指向的结构圆的成员。 cir-> radius相同,但由指针变量cir指向。但是()有什么作用?

最佳答案

由于cir被声明为指向结构的指针,即struct circle *cir;,因此您必须使用->运算符来访问结构的元素

如果cir仅声明为类型结构的变量,即struct circle cir;,则必须使用.运算符访问结构的元素

因为()在这里没有任何区别,所以(cir.radius) = cir.radius(cir->center)=cir->center

10-07 18:25