重複の可能性:
C で -> と . が区別されるのはなぜですか?
コンパイラは、左側のオペランドがポインターか参照かを判断できるほどスマートです。メンバー アクセスに 2 つの異なる演算子 (. と ->) があるのはなぜですか?
間接性を明示するためですか?読みやすさのため?C が設計されたときに利用可能なハードウェアについて、ソース コードを読み取るときにこれらの操作を簡単に区別できる強力なケースがあったでしょうか?
の省略形の構文であると読んだことが(*ptr).member
ありますptr.member
が、ptr がポインターの場合は有効ですか? ptr がポインタであるかのようptr.member
に「うまく機能しない」のはなぜですか?ptr->member