5

参照:ポインタについて


多くの C 風味の言語や、Fortran などの一部の古い言語では、Pointersを使用できます。

Basic、JavaScript、および ActionScript でしか実際にプログラミングしたことのない人として、Pointer とは何か、それが最も役立つのは何かを説明してもらえますか?

ありがとう!

4

5 に答える 5

9

このウィキペディアの記事では、ポインターとは何かについての詳細な情報を提供します。

コンピューター サイエンスでは、ポインターはプログラミング言語のデータ型であり、その値は、そのアドレスを使用して、コンピューター メモリの別の場所に格納されている別の値を直接参照 (または「ポイント」) します。ポインターが参照する値を取得または要求することを、ポインターの逆参照と呼びます。ポインターは、一般的な参照データ型の単純な実装です (ただし、C++ で参照と呼ばれる機能とはかなり異なります)。データへのポインターは、文字列やツリー構造のトラバースなどの反復操作のパフォーマンスを向上させます。関数へのポインターは、オブジェクト指向プログラミングのメソッドのバインドや、ダイナミック リンク ライブラリ (DLL) へのランタイム リンクに使用されます。

于 2008-09-30T16:34:09.307 に答える
7

ポインターは、別の変数のアドレスを含む変数です。これにより、別の変数を間接的に参照できます。たとえば、C では次のようになります。

// x is an integer variable
int x = 5;
// xpointer is a variable that references (points to) integer variables
int *xpointer;
// We store the address (& operator) of x into xpointer.
xpointer = &x;
// We use the dereferencing operator (*) to say that we want to work with
// the variable that xpointer references
*xpointer = 7;
if (5 == x) {
    // Not true
} else if (7 == x) {
    // True since we used xpointer to modify x
}
于 2008-09-30T16:33:39.713 に答える
4

ポインタは思ったほど難しくありません。他の人がすでに言ったように、それらは他の変数のアドレスを保持する変数です。あなたに私の家への道順を教えたかったとしましょう。私の家の写真や私の家の縮尺模型をあなたにあげるつもりはありません。住所を教えていただければと思います。そこから必要なものを推測できます。

同様に、多くの言語では、値渡しと参照渡しを区別しています。基本的に、参照する必要があるたびにオブジェクト全体を渡すことを意味しますか? それとも、他の人が必要なものを推測できるように、そのアドレスを提供しますか?

最新の言語のほとんどは、ポインターがいつ役立つかを判断し、それを最適化することで、この複雑さを隠しています。ただし、自分が何をしているのかわかっている場合は、状況によっては手動のポインター管理が依然として役立つ場合があります。

于 2008-09-30T16:42:58.460 に答える
1

このトピックについて SO でいくつかの議論がありました。このトピックに関する情報は、以下のリンクから入手できます。この件については、他にも関連する SO の議論がいくつかありますが、これらが最も関連性が高いと思います。検索ウィンドウで「pointers [C++]」(または「pointers [c]」) を検索すると、さらに詳しい情報が得られます。

C++ ではポインターとクラスを把握できません

現代の「リファレンス」と従来の「ポインター」の違いは何ですか?

于 2008-09-30T16:38:11.577 に答える
-1

誰かがすでに述べたように、ポインターは別の変数のアドレスを含む変数です。

これは主に、(実行時に) 新しいオブジェクトを作成するときに使用されます。

于 2008-09-30T16:36:21.657 に答える