問題タブ [addressof]
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 - Ansi C:配列の名前はポインタ変数として保存されますか?
たとえば、配列を定義します。
と
配列の先頭へのアドレスです。
私の質問は、a
ポインター変数のようにメモリ内のどこかに格納されるのですか? もしそうなら、a
( &a
) のアドレスを出力しようとすると、なぜ と同じ値になるのa
ですか?
c++ - C++ コピー コンストラクターの構文: アンパサンドは r/l 値を参照していますか?
以下は私の C++ テキストからの抜粋で、コピー コンストラクターを使用してクラスを宣言するための構文を示しています。
次に示すように、コピー コンストラクター:
パラメータ Student の後にアンパサンドがあります。
C と C++ では、アンパサンド文字がポインターの「アドレス」演算子として使用されていると思います。もちろん、ポインター名の前に & 文字を使用するのが標準であり、コピー コンストラクターは後に使用するため、これは同じ演算子ではないと思います。
私が見つけたアンパサンド文字の別の使用法は、次のように Rvalues と Lvalues に関連しています: http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11。 html
私の質問は Rvalues と Lvalues に関するものではありません。 & 文字がパラメーターの後に配置されている理由と、これが何と呼ばれているか、必要な場合/理由を知りたいだけです。
vb.net - 「AddressOf」を使用してハンドラーを追加する
動的に作成されたボタンにイベント ハンドラーを追加しようとすると、エラーが発生します。
AddressOf 行でエラーが発生します。
「Item_Click は windowsapplication1.main のメンバーではありません」
これは、名前をに設定したためだと思います"Itm" & i
が、使用してAddressOf Me.Itm(i)_Click
もエラーが発生します。何かご意見は?
c - 取得エラー: 'int' 型の右辺値のアドレスを取得できません
古いコードを新しいコンパイラでコンパイルしようとしたところ、次のエラーが発生しました。
これは 2 行の例です。1 行はコンパイルされ、もう 1 行はエラーが発生します。
最初の行がコンパイルされ、2 番目の行が失敗するのはなぜですか? select 式の両方で (unsigned) & をキャストする必要があるのはなぜですか? select 式が評価された後にのみキャストするだけでは不十分です。
c - 個々の配列要素はポインターに減衰しますか?
配列がポインターに減衰することは知っています。その結果、ポインターのように動作するため、基本的に、アンパサンドを使用せずにメモリ アドレスを必要とする引数を持つ関数に渡すことができます。例えば:
正しい。
ただし、「name」配列の最初の要素だけを入力したい場合、次のように記述できないのはなぜですか
しかし、「name[0]」の前にアンパサンドを付けて書く必要がありますか? これは、個々の配列要素がポインタに減衰せず、対応する配列全体とは対照的に、個々のメモリ アドレスを保持しないことを意味しますか?
c - C コードで *& または &* を使用する理由はありますか?
*
参照/逆参照 (またはそれらを呼び出すために選択したもの) 演算子を利用するいくつかの C コードに出くわしまし&
た。私はそれに困惑しています。これを行う理由はありますか?&*foo
*&bar
c++ - 宣言されている関数のアドレスだけが機能するのはなぜですか?
ここで、関数のアドレスを取得すると、特に Substitution-Failure-Is-Not-An-Error に関して、その関数のコンパイルが強制されるかどうかについて質問しました。これに対する最も直接的な答えはここにあります:
非形式的には、オブジェクトは、そのアドレスが取得されるか参照がバインドされている場合に ODR 使用され、関数は、関数呼び出しが行われるかアドレスが取得される場合に ODR 使用されます。オブジェクトまたは関数が ODR で使用される場合、その定義はプログラムのどこかに存在する必要があります。これに違反すると、リンク時エラーになります。
しかし、私がテストしたすべてのコンパイラは、これが完全に実行可能であることを示しています。
これは合法ではないですよね?しかし、そうでない場合、なぜそれは構築されているのでしょうか?