int *count
演算子を使用して、ポイントされている整数をインクリメントするint
ポインター(つまり、++
)があります。私は電話すると思いました:
*count++;
ただし、ビルドの警告"expression result used"が表示されます。できる:電話
*count += 1;
しかし、++
演算子の使用方法も知りたいです。何か案は?
++は*と同等の優先順位を持ち、結合性はright-to-leftです。 here。 を参照してください。++はpointerに関連付けられますが、その後に増分が適用されるため、さらに複雑になります。ステートメントの評価。
発生する順序は次のとおりです。
ステップ2で間接参照された値を実際に使用しないため、警告が表示されます。@ Sidarthが言うように、評価の順序を強制するには括弧が必要です。
(*ptr)++
(*count)++
を使用してみてください。 *count++
は、ポインタを次の位置にインクリメントしてから、インダイレクションを使用している可能性があります(これは意図的ではありません)。