为什么有时使用点语法来访问结构中的成员变量,但有时会使用->
?我一直在学习iOS中的一些C库,在将结构传递给函数时,似乎经常使用箭头语法。我认为它与指针/内存地址/ C类型的东西有关,但我不确定'之间的重要性。'和' - >'是访问结构上的字段时。
答案 0 :(得分:4)
.
运算符用于访问结构或联合的成员。 ->
的定义使得a->b
b
是*a
的结构或联合成员,等于(*a).b
。这种语法糖的存在是为了方便,因为始终写(*a).b
是乏味的。请记住:如果a
是指针,请使用->
,如果它是结构或联合,请使用.
。
一些更新的语言(比如Go)消除了区别,但没有让编译器变得复杂,因为你需要做更复杂的类型检查来找出如何编译.
所以我猜这&# 39;那肯定汤普森当时没有这样做的原因。