問題タブ [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.
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
c - NULL + intの結果は何ですか?
OpenGLVBOの実装で次のマクロが使用されているのを見てきました。
このマクロがどのように機能するかについて少し詳しく教えてください。関数に置き換えることはできますか?より正確には、NULLポインターをインクリメントした結果はどうなりますか?
c - 多次元配列名とポインタ演算の間接参照
私はこの多次元配列を持っています:
ここで、*marr
定義による式(ISO / IEC 9899:1999)に遭遇すると、次のようになります(引用します)
オペランドのタイプが「タイプ」へのポインタの場合、結果のタイプは「タイプ」になります。
その式には、marrが最初の要素へのポインター(この場合は配列へのポインター)に減衰するため、式* marrがあると、サイズ3の「type」配列が返されます。だから私の質問は、(* marr)+ 1を実行すると、配列のサイズである3ではなく、アドレスに1バイトだけを追加する理由です。
私の無知をすみません、私はあまり明るい人ではありません。私は時々このような些細なことに行き詰まります。
お時間をいただきありがとうございます。
c++ - ポインターの演算は連想ですか?
私が言うなら、
今、私が書くp + 1 + 2
と、それは同じ((p + 1) + 2)
ですか?これが間違っていることを証明する標準的な参考文献はありますか?
c - 構造体を使ったポインタ演算
ポインター演算を使用して構造体の特定のメンバーを出力する方法は? 私は2人のメンバーを持つ構造を持っています。j
その構造体へのポインタのメモリを操作してメンバーを出力したい。
c - 配列、整数、ポインターを含むポインター演算を使用して C で文字列を出力する
3 つの構造があります。配列a
とb
ポインターc
:
これはコードです:
今、私が理解できないのは式b+(c-*a)-2
です。誰かが親切にしてそれを打ち破ることができますか?
c - 配列への void ポインターの使用
整数配列へのvoidポインターを使用しようとしていましたが、配列をintにキャストして戻すことができるかどうかを確認しようとしました。しかし、それは私にランダムな値を与えています。どこが間違っているのか教えてもらえますか?
出力は次のとおりです。
配列 a[] 、つまり 1,2,3,4 の要素をピン留めしないのはなぜですか?
c++ - ポインタからポインタへの算術
誰かが次のコードの出力を説明できますか
出力:
私を混乱させるのは、++*pと*p++の動作が異なることです。私は出力が次のようになることを期待していました:
c++ - offsetofマクロの正しい使用法
私はoffsetof
次のようにマクロを操作しようとしています。
そしてそれはこの単純なテストケースで動作するようです:
今本当の質問:
- 安全ですか?( g ++で動作すると仮定)
- 標準の最適化で機能しますか?(主に
-O2
) - 私がしていることをするためのより良い方法はありますか?(すべてのxとyを保存しないようにする必要があります
MapBlock
が、関連することを知らなくてもブロックを介してそれらにアクセスできますMapTile
) u8
オフセットを引くときにキャストを回避できますか?いいえと思いますが、確認したかっただけです。
ありがとう