Dlaczego istnieje operator strzałki (->) w C?

Kropka (.) operator jest używany do uzyskania dostępu do elementu struktury, podczas gdy operator strzałki (->) w C służy do uzyskania dostępu do elementu struktury, do którego odwołuje się dany wskaźnik.

Sam wskaźnik nie ma żadnych członków, do których można uzyskać dostęp za pomocą operatora kropki (w rzeczywistości jest to tylko liczba opisująca lokalizację w pamięci wirtualnej, więc nie ma żadnych członków). Nie byłoby więc dwuznaczności, gdybyśmy zdefiniowali operator kropki, aby automatycznie wyłuskać wskaźnik, jeśli jest on używany na wskaźniku (informacje, które są znane kompilatorowi w czasie kompilacji afaik).

Dlaczego więc twórcy języka postanowili uczynić rzeczy bardziej skomplikowanymi, dodając tego pozornie niepotrzebnego operatora? Jaka jest duża decyzja projektowa?

questionAnswers(3)

yourAnswerToTheQuestion