dot(.)运算符用于访问结构的成员,而->C中的箭头运算符()用于访问由有问题的指针引用的结构的成员.
.
->
指针本身没有任何可以使用点运算符访问的成员(它实际上只是一个描述虚拟内存中位置的数字,因此它没有任何成员).因此,如果我们只是将点运算符定义为在指针上使用指针(编译时afaik编译器已知的信息)时自动取消引用指针,则不会产生歧义.
那么为什么语言创建者决定通过添加这个看似不必要的运算符来使事情变得更复杂?什么是重大的设计决定?
c pointers dereference
c ×1
dereference ×1
pointers ×1