Cの次の行の意味は何ですか.それを実行する順序は何ですか?
float *x,*y;
*x++=*y++
これがどのように評価されたかを説明できる人はいますか?
Cの次の行の意味は何ですか.それを実行する順序は何ですか?
float *x,*y;
*x++=*y++
これがどのように評価されたかを説明できる人はいますか?
元のコードの場合:
x++ = y++
この行は正当な C ではなく、コンパイルされないため、評価されることはありません。の結果はx++
左辺値ではなく、代入の左辺では許可されません。
更新されたコードの場合:
float x,y;
*x++ = *y++
*
に適用できないため、これは正当ではありませんfloat
。
このコードを追加します:
float *x, *y;
*x++ = *y++;
このコードは次のように述べています。
float *xt
、等しいとしましょうx
。float *yt
、等しいとしましょうy
。x
ます。y
ます。*xt = *yt
ます。実際の操作はさまざまな順序で実行される可能性があり、provideは更新xt
前に値を取得し、更新前に値を取得し、使用前に定義されます。x
yt
y
xt
yt