2017-05-04 14 views
0

私はちょっと混乱しました。ポインタ変数の格納場所について誰でも助けてください。ポインタ変数が格納され、どのようにコンパイラが通常の変数にアクセスするのですか?

int *ptr; //where this pointer stored 
int p; //how compiler can access this variable(using address or what?) 

ポインターにはどのような通常の変数についてのアクセスがありますか?このポインタが格納されている

Cを学ぶために最高のウェブサイトに私を提案してください...

+1

[Cでのポインタとグローバル変数の位置](http://stackoverflow.com/questions/3113668/location-of-pointers-and-global-variables-in-c)の可能な複製 – rsp

+0

簡潔には* aポインタは、他の値へのアドレスをその値として保持する通常の変数です*一方、変数は直接値を保持するメモリアドレスへのラベルです*。ポインターによって保持されているアドレスに直接値を取得するポインターを省略します。 –

+0

リクエストされた情報の範囲は、こことCのマニュアルまたはチュートリアルの両方で簡単に見つかるため、このトピックをオフトピックとして閉じることにしました。 –

答えて

1

ポインタはメモリ内の他の通常の変数と同様に格納されます。その変数がローカル変数かどうかに正確に依存します。この変数は、スタックに格納されます。グローバル変数または静的変数は、グローバル変数の別のメモリセクションに格納されます。

  1. コンパイラがこの変数にアクセスする方法は?

ここではコンパイラのアクセスが何を意味するのかわかりませんが、プログラマが直接変数にアクセスできるようになっている場合は、ポインタをポインタに格納して間接的にアクセスできます。

a = p; //Direct access 

int *ptr; 
ptr = &p; 
a = *ptr; // Access the variable indirectly. 

ウェブサイトを推薦する3番目の質問は、StackOverflowの範囲外です。

関連する問題