c - cir.radius 和 (cir.radius) 之间的差异

标签 c pointers struct

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

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

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

最佳答案

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

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

as () 在这里没有任何区别,所以 (cir.radius) = cir.radius(cir->center)=圆形->中心

关于c - cir.radius 和 (cir.radius) 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328147/

相关文章:

c - 想要检查文件中是否存在值

c++ - 从指针集合中快速检索特定对象

c++ - 从指针 vector 的 vector 中释放内存

c - 如何在声明后初始化字符数组

arrays - C - 使用数组成员初始化结构时出错

text-processing - 替换文本文档中一行的最有效方法?

c - sizeof ('a' ) 和 sizeof ("a") 的区别

c - 为什么我得到我正在传递来自不兼容指针类型的参数?

c - 变量指针与内存指针

c - 为什么这个包含指向自身的指针的结构不能正常工作?