-2

通常はドット ( Struct.Member) で構造体メンバーにアクセスしますが、 がStructポインターの場合は、使用する必要がありますStruct->Member

これには特別な理由がありますか?どちらの場合も、メモリの一部を参照しているだけだからです。また、コンパイラは両方の演算子を処理できる必要があるため、強制されたコードスタイルにすぎませんか?

4

2 に答える 2

4

それは、言語がそのように定義されているためです。

演算子のプレフィックスを.構造体または構造体へのポインターにすることができる言語があります。あなたが言うように、コンパイラは接頭辞の型を知っているので、あいまいさは導入されません。

Cはたまたまそうしないだけです。深い理由があるとは思いませんが、デニス・リッチーがやろうと決めた方法です。

また、.for 構造体とfor ポインターを使用すると、プレフィックスがポインターであるかどうかが読者->に明確になります。C のような比較的低レベルの言語では、そのような詳細が重要になる場合があります。

于 2013-10-06T02:22:53.777 に答える