2017-06-11 3 views
1

私はC言語を学んだし、私はいくつかの質問を持っています。メモリ領域の先頭のアドレスをローカライズする方法は?

メモリ領域の先頭のアドレスを見つけるための最善の方法は、ポインタを使用する場合は?例えば

数歩

  1. に私は変数aへのポインタを宣言する変数int型a = 1;
  2. を持っている:int *pointer_a;
  3. 私はポインタに変数aを割り当てる:今すぐpointer_a = a;
  4. 、私が欲しいですメモリ領域にアドレスを印刷する場合: printf("Adress variable a= %p", &pointer_a);

私はそれを正しくやっていますか?

+1

'pointer_a = a'はコンパイルしないでください。 –

+0

変数 'a'ではなく、ポインタのアドレスを表示しています。 – ForceBru

+0

「メモリの始まり」のないポータブル定義し、それがどこにあるか見つけるのがないポータブルな方法はありません。 – dasblinkenlight

答えて

1

pointer_aは変数aのメモリアドレスを保持する必要があり、それはポインタが仕事です。限りポインタがあるとして懸念&address of operatorです。

pointer_a = &a; 

とすることができます。 printf("Address variable a = %p", pointer_a);

printf("Address variable a = %p", &a);

+0

を読む今私は間違いを理解しています。ありがとう:) – geekcode

+1

'printfの( "アドレス変数a =%pを"、&pointer_a);' ** ** A' 'のアドレスを印刷しません。ポインタが指し示すアドレスではなく、ポインタのアドレスを表示します。 – SiggiSv

+0

@SiggiSv私の悪い。修正されました。 –

関連する問題