int
ポインタ (つまり)があり、演算子int *count
を使用して、そのポインタが指している整数を増分したいと考えてい++
ます。次のように呼び出すことを考えました。
*count++;
しかし、ビルド警告が出ます「式の結果は未使用です」. 私は電話することができます
*count += 1;
しかし、演算子の使い方++
も知りたいです。何かアイデアはありますか?
ベストアンサー1
++は*と同じ優先順位を持ち、結合性は右から左に。 見るここ。さらに複雑になるのは、++がポインタ増分はステートメントの評価後に適用されます。
物事が起こる順序は次のとおりです。
- ポストインクリメント、ポストインクリメントされたポインタアドレス値を一時記憶する
- 非増分ポインタアドレスの参照
- 増分されたポインタ アドレスを count に適用すると、count はそのタイプのエンティティの次の可能なメモリ アドレスを指すようになります。
ステップ 2 で参照解除された値を実際に使用しないため、警告が表示されます。@Sidarth が言うように、評価の順序を強制するには括弧が必要です。
(*ptr)++