問題タブ [pointer-arithmetic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
250 参照

c - 宗派におけるCポインタの加算と減算。6.5.6

C99セクション6.5.6のパラグラフ8と9を理解しようとしています(加算演算子)

パラ8は次のことを意味しますか?

段落9については、ptrdiff_tは常に2つのポインターの差を保持するのに十分な大きさであると理解していました。しかし、「値がptrdiff_t型のオブジェクトに適合する場合」という表現は、この理解が間違っていることを示唆しているようです。私の理解が間違っているのか、それともC99が何か別の意味を持っているのか。

ドラフト標準へのリンクはここにあります:http: //cboard.cprogramming.com/c-programming/84349-c-draft-standards.html

0 投票する
4 に答える
5987 参照

c - NULL + intの結果は何ですか?

OpenGLVBOの実装で次のマクロが使用されているのを見てきました。

このマクロがどのように機能するかについて少し詳しく教えてください。関数に置き換えることはできますか?より正確には、NULLポインターをインクリメントした結果はどうなりますか?

0 投票する
2 に答える
1889 参照

c - 多次元配列名とポインタ演算の間接参照

私はこの多次元配列を持っています:

ここで、*marr定義による式(ISO / IEC 9899:1999)に遭遇すると、次のようになります(引用します)

オペランドのタイプが「タイプ」へのポインタの場合、結果のタイプは「タイプ」になります。

その式には、marrが最初の要素へのポインター(この場合は配列へのポインター)に減衰するため、式* marrがあると、サイズ3の「type」配列が返されます。だから私の質問は、(* marr)+ 1を実行すると、配列のサイズである3ではなく、アドレスに1バイトだけを追加する理由です。

私の無知をすみません、私はあまり明るい人ではありません。私は時々このような些細なことに行き詰まります。

お時間をいただきありがとうございます。

0 投票する
5 に答える
300 参照

c++ - ポインターの演算は連想ですか?

私が言うなら、

今、私が書くp + 1 + 2と、それは同じ((p + 1) + 2)ですか?これが間違っていることを証明する標準的な参考文献はありますか?

0 投票する
2 に答える
4624 参照

c - 構造体を使ったポインタ演算

ポインター演算を使用して構造体の特定のメンバーを出力する方法は? 私は2人のメンバーを持つ構造を持っています。jその構造体へのポインタのメモリを操作してメンバーを出力したい。

0 投票する
1 に答える
990 参照

c - 配列、整数、ポインターを含むポインター演算を使用して C で文字列を出力する

3 つの構造があります。配列abポインターc:

これはコードです:

今、私が理解できないのは式b+(c-*a)-2です。誰かが親切にしてそれを打ち破ることができますか?

0 投票する
4 に答える
31353 参照

c - 配列への void ポインターの使用

整数配列へのvoidポインターを使用しようとしていましたが、配列をintにキャストして戻すことができるかどうかを確認しようとしました。しかし、それは私にランダムな値を与えています。どこが間違っているのか教えてもらえますか?

出力は次のとおりです。

配列 a[] 、つまり 1,2,3,4 の要素をピン留めしないのはなぜですか?

0 投票する
5 に答える
1313 参照

c++ - ポインタからポインタへの算術

誰かが次のコードの出力を説明できますか

出力:

私を混乱させるのは、++*pと*p++の動作が異なることです。私は出力が次のようになることを期待していました:

0 投票する
1 に答える
485 参照

c++ - offsetofマクロの正しい使用法

私はoffsetof次のようにマクロを操作しようとしています。

そしてそれはこの単純なテストケースで動作するようです:

今本当の質問:

  • 安全ですか?( g ++で動作すると仮定)
  • 標準の最適化で機能しますか?(主に-O2
  • 私がしていることをするためのより良い方法はありますか?(すべてのxyを保存しないようにする必要がありますMapBlockが、関連することを知らなくてもブロックを介してそれらにアクセスできますMapTile
  • u8オフセットを引くときにキャストを回避できますか?いいえと思いますが、確認したかっただけです。

ありがとう