ポインタが指しているintの値を増分する 質問する

ポインタが指しているintの値を増分する 質問する

intポインタ (つまり)があり、演算子int *countを使用して、そのポインタが指している整数を増分したいと考えてい++ます。次のように呼び出すことを考えました。

*count++;

しかし、ビルド警告が出ます「式の結果は未使用です」. 私は電話することができます

*count += 1;

しかし、演算子の使い方++も知りたいです。何かアイデアはありますか?

ベストアンサー1

++は*と同じ優先順位を持ち、結合性は右から左に。 見るここ。さらに複雑になるのは、++がポインタ増分はステートメントの評価後に適用されます。

物事が起こる順序は次のとおりです。

  1. ポストインクリメント、ポストインクリメントされたポインタアドレス値を一時記憶する
  2. 非増分ポインタアドレスの参照
  3. 増分されたポインタ アドレスを count に適用すると、count はそのタイプのエンティティの次の可能なメモリ アドレスを指すようになります。

ステップ 2 で参照解除された値を実際に使用しないため、警告が表示されます。@Sidarth が言うように、評価の順序を強制するには括弧が必要です。

 (*ptr)++

おすすめ記事