¿Por qué existe el operador de flecha (->) en C?

El punto (.) el operador se utiliza para acceder a un miembro de una estructura, mientras que el operador de flecha (->) en C se utiliza para acceder a un miembro de una estructura a la que hace referencia el puntero en cuestión.

El puntero en sí no tiene ningún miembro al que se pueda acceder con el operador de punto (en realidad es solo un número que describe una ubicación en la memoria virtual, por lo que no tiene ningún miembro). Por lo tanto, no habría ambigüedad si solo definiéramos el operador de punto para eliminar la referencia automática al puntero si se usa en un puntero (una información que el compilador conoce en el momento de la compilación en el enlace).

Entonces, ¿por qué los creadores del lenguaje decidieron hacer las cosas más complicadas al agregar este operador aparentemente innecesario? ¿Cuál es la gran decisión de diseño?

Respuestas a la pregunta(3)

Su respuesta a la pregunta