3

私がいくつかの労働をしているときに私はこの線に出くわしました:

 int home_address = current_pos_ = hash(key, size_);

そして、私はそれが実際に何をするのか疑問に思いましたか?(ハッシュ関数などではなく、「int変数=変数=値;」のことだけです)

4

3 に答える 3

5

その式は次のように読み取られます。

int home_address = (current_pos_ = hash(key,size_));

hash(key,size_)intoの結果を割り当ててから、 intocurrent_pos_の値を割り当てます。current_pos_home_address

于 2012-10-18T12:52:28.803 に答える
2

代入演算子は左引数の最終値に評価されるため、このコードはに代入hash(key, size_)し、の新しい値でcurrent_pos_初期化します。home_addresscurrent_pos_

代入演算子は、任意の型の任意の値を返すようにオーバーロードできるため、一般に、この式の動作は、 (おそらく暗黙の変換を実行する) current_pos_の結果での代入演算子を呼び出してから、の戻り値で初期化することです。代入演算子(おそらく暗黙の変換を実行します)。hash(key, size_)home_address

于 2012-10-18T12:52:28.840 に答える
0
int x = y = 0;

と同じです

int x = 0;
y = 0;
于 2012-10-18T12:51:44.013 に答える