演算子を使用して、ポイントされている整数をインクリメントしたいint
ポインター(つまり、 )があります。私は私が呼ぶと思った:int *count
++
*count++;
ただし、ビルド警告「式の結果は使用されていません」が表示されます。私ができること:電話
*count += 1;
++
でも、演算子の使い方も知りたいです。何か案は?
演算子を使用して、ポイントされている整数をインクリメントしたいint
ポインター(つまり、 )があります。私は私が呼ぶと思った:int *count
++
*count++;
ただし、ビルド警告「式の結果は使用されていません」が表示されます。私ができること:電話
*count += 1;
++
でも、演算子の使い方も知りたいです。何か案は?
++は*と同等の優先順位を持ち、結合性は右から左です。こちらをご覧ください。++はポインタに関連付けられますが、ステートメントの評価後にインクリメントが適用されるため、さらに複雑になります。
発生する順序は次のとおりです。
手順2で逆参照された値を実際に使用することはないため、警告が表示されます。@ Sidarthが言うように、評価の順序を強制するには括弧が必要です。
(*ptr)++
を使用してみてください(*count)++
。*count++
ポインタを次の位置にインクリメントしてから、間接参照を使用している可能性があります(これは意図的ではありません)。