ポインタの指す int 値のインクリメント
2023-08-02 19:58:32
質問
私は
int
のポインタ(つまり
int *count
) を使って、指されている整数をインクリメントしたいのです。
++
演算子を使うことで、指された整数をインクリメントしたい。と呼ぼうと思いました。
*count++;
しかし、ビルドの警告が表示されます。 式の結果が未使用です。 . 私はできる: 呼び出し
*count += 1;
しかし、私は、このような場合、どのように
++
演算子も使いたいのです。何かアイデアはありますか?
どのように解決するのですか?
は * と同じ優先順位を持ち、連想順位は 右から左 . 参照 を参照してください。 さらに複雑になるのは、++が関連付けられるにも関わらず ポインタ に関連づけられるにもかかわらず、インクリメントはステートメントの評価後に適用されるため、さらに複雑になります。
物事が起こる順番は
- インクリメント後のポインタアドレス値を一時的に記憶する
- インクリメントされていないポインタ・アドレスをデリファレンスする。
- インクリメントされたポインタアドレスをcountに適用し、countはそのタイプのエンティティのために次に可能なメモリアドレスを指すようになります。
ステップ 2 で参照解除された値を実際には使用していないため、警告が表示されます。Sidarth が言うように、評価の順序を強制するために括弧が必要になります。
(*ptr)++
関連
-
[C] Error [Error] 代入の左オペランドとして lvalue が必要です。
-
[解決済み] 型付けされた関数ポインタ?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] Pythonにおけるincrementとdecrement演算子の挙動
-
[解決済み] ポインタの「デリファレンス」とはどういう意味ですか?
-
[解決済み】なぜこれらのコンストラクトはプリインクリメントとポストインクリメントを使用して未定義の動作をしているのでしょうか?
-
[解決済み] ポインタの表現。*ptr++、*++ptr、++*ptr。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
解決済み] g++ コンパイルエラー: ')'トークンの前に一次式があることが予想される
-
エラー: 宣言されていない識別子 'bool' の使用と C コンパイラでの問題点
-
[解決済み] C言語の書式指定子 %ul と %lu の違いは何ですか?
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] CコードでEOFを表現する?
-
[解決済み] Cコードの単体テスト【終了しました
-
[解決済み] C言語で関数をパラメータとして渡すにはどうすればよいですか?
-
[解決済み] printfは、フォーマット文字列の中に改行がないと、呼び出し後にフラッシュしないのはなぜですか?
-
[解決済み] なぜ16進数には0xがつくのですか?
-
[解決済み] 講師が書いたC言語のファイルは、なぜ最初の行に#が一つ付いているのですか?