0

私はWinsockについて学び、次のページのコードを見ていました: WinsockTutorial1

プログラムには、演算子=*を含む行があります。誰か教えてもらえますか?私はa*=bがa=a*bと同等であることを知っています。そして、私は、=+が+=の廃止された形式であることをstackoverflowで読みました。そこで、*と=を交換して* =にしようとしましたが、コンパイラーからエラーが発生しました。このコード行の意味を誰かに教えてもらえれば幸いです。

SockAddr.sin_addr.s_addr=*((unsigned long*)host->h_addr);
4

2 に答える 2

5

これは、何かを参照解除してLHSに割り当てることを意味します。

SomeType LHS;
SomeType* Something = ....;
LHS = *(Something);

間接参照演算子を参照してください。

于 2013-01-25T17:57:18.187 に答える
1

演算子=*は、C言語の初期バージョンに存在していました(元の形式の*=演算子として)。

C ++には、そのような演算子はありません。(代入演算子)の後に単項(逆参照演算子)が続く=*ことに他なりません。お気に入りのC++の本で、単項の意味を調べることができます。=*=*

于 2013-01-25T18:06:55.913 に答える