C中的结构语法( - >)

时间:2015-12-13 23:09:51

标签: c struct syntax

为什么有时使用点语法来访问结构中的成员变量,但有时会使用->?我一直在学习iOS中的一些C库,在将结构传递给函数时,似乎经常使用箭头语法。我认为它与指针/内存地址/ C类型的东西有关,但我不确定'之间的重要性。'和' - >'是访问结构上的字段时。

1 个答案:

答案 0 :(得分:4)

.运算符用于访问结构或联合的成员。 ->的定义使得a->b b*a的结构或联合成员,等于(*a).b。这种语法糖的存在是为了方便,因为始终写(*a).b是乏味的。请记住:如果a是指针,请使用->,如果它是结构或联合,请使用.

一些更新的语言(比如Go)消除了区别,但没有让编译器变得复杂,因为你需要做更复杂的类型检查来找出如何编译.所以我猜这&# 39;那肯定汤普森当时没有这样做的原因。