問題タブ [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.

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

c - Ansi C:配列の名前はポインタ変数として保存されますか?

たとえば、配列を定義します。

配列の先頭へのアドレスです。

私の質問は、aポインター変数のようにメモリ内のどこかに格納されるのですか? もしそうなら、a( &a) のアドレスを出力しようとすると、なぜ と同じ値になるのaですか?

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

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 に関するものではありません。 & 文字がパラメーターの後に配置されている理由と、これが何と呼ばれているか、必要な場合/理由を知りたいだけです。

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

vb.net - 「AddressOf」を使用してハンドラーを追加する

動的に作成されたボタンにイベント ハンドラーを追加しようとすると、エラーが発生します。

AddressOf 行でエラーが発生します。

「Item_Click は windowsapplication1.main のメンバーではありません」

これは、名前をに設定したためだと思います"Itm" & iが、使用してAddressOf Me.Itm(i)_Clickもエラーが発生します。何かご意見は?

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

c - 取得エラー: 'int' 型の右辺値のアドレスを取得できません

古いコードを新しいコンパイラでコンパイルしようとしたところ、次のエラーが発生しました。

これは 2 行の例です。1 行はコンパイルされ、もう 1 行はエラーが発生します。

最初の行がコンパイルされ、2 番目の行が失敗するのはなぜですか? select 式の両方で (unsigned) & をキャストする必要があるのはなぜですか? select 式が評価された後にのみキャストするだけでは不十分です。

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

c - 個々の配列要素はポインターに減衰しますか?

配列がポインターに減衰することは知っています。その結果、ポインターのように動作するため、基本的に、アンパサンドを使用せずにメモリ アドレスを必要とする引数を持つ関数に渡すことができます。例えば:

正しい。

ただし、「name」配列の最初の要素だけを入力したい場合、次のように記述できないのはなぜですか

しかし、「name[0]」の前にアンパサンドを付けて書く必要がありますか? これは、個々の配列要素がポインタに減衰せず、対応する配列全体とは対照的に、個々のメモリ アドレスを保持しないことを意味しますか?

0 投票する
3 に答える
231 参照

c - C コードで *& または &* を使用する理由はありますか?

*参照/逆参照 (またはそれらを呼び出すために選択したもの) 演算子を利用するいくつかの C コードに出くわしまし&た。私はそれに困惑しています。これを行う理由はありますか?&*foo*&bar

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

c++ - テンプレート化された関数のアドレスを取得すると、そのコンパイルがトリガーされますか?

関数のコンパイルをトリガーしてはならないこの質問に対する公式の回答を得ました。実際、宣言されているが定義されていない関数は正当です。decltypedecltype

次の質問は、関数のアドレスを取得すると、関数のコンパイルがトリガーされますか? この例を見てください:

私がテストしたすべてのコンパイラは、次のようなエラーで失敗します。

非クラス タイプの のメンバーfuncの要求xint

しかし、定義するだけfooで宣言しないと、コードは正常にコンパイルされます。関数のアドレスを取得するためにコンパイルが必要かどうかについて、誰かが公式の情報源を提供してくれますか?

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

c++ - 宣言されている関数のアドレスだけが機能するのはなぜですか?

ここで、関数のアドレスを取得すると、特に Substitution-Failure-Is-Not-An-Error に関して、その関数のコンパイルが強制されるかどうかについて質問しました。これに対する最も直接的な答えはここにあります:

非形式的には、オブジェクトは、そのアドレスが取得されるか参照がバインドされている場合に ODR 使用され、関数は、関数呼び出しが行われるかアドレスが取得される場合に ODR 使用されます。オブジェクトまたは関数が ODR で使用される場合、その定義はプログラムのどこかに存在する必要があります。これに違反すると、リンク時エラーになります。

しかし、私がテストしたすべてのコンパイラは、これが完全に実行可能であることを示しています。

Live Example

これは合法ではないですよね?しかし、そうでない場合、なぜそれは構築されているのでしょうか?