1

ランダムに選択された同じ整数を複数の配列に入力しようとしていますが、件名にエラーが表示され続けます。これが私のコードです:

while(i++ < arraySize){
        randInt = (int)random()%100;
        originalArray++ = randInt;
        ascendingOrderArray++ = randInt;
        descendingOrderArray++ = randInt;
    }

このコンテキストでこのエラーが発生するのはなぜですか?私の理解では、このコードは、randIntを3つの配列に割り当て、コードの最後でそれらのポインターをインクリメントすることと同じです。

4

3 に答える 3

1

originalArrayascendingOrderArrayおよびdescendingOrderArrayが型のポインタであり、型であるint *と仮定すると、割り当てるときにポインタを逆参照する必要があります。たとえば。これにより、ポインタの参照が解除され、割り当てることができる「左辺値」が生成され、その値が(ポインタが指す場合は常に)割り当てられ、後でポインタがインクリメントされます。randIntint*originalArray++ = randInt;randIntoriginalArray

于 2013-02-24T02:16:12.090 に答える
1

ここでは、数値(配列のアドレス)に値を割り当てようとしています。数値は左辺値ではなく右辺値であるため、失敗します。

originalArray++ = randInt;

ここでは、メモリ位置(ポインタの逆参照によって取得されたアドレス)に値を割り当てています。これは左辺値であるため、成功します。

*originalArray++ = randInt;
于 2013-02-24T02:16:41.963 に答える
0

original ++はオブジェクトではないため、値を格納することはできません。

于 2013-02-24T02:16:36.790 に答える