Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

C++ ポインタ 表示

解決したいこと

image.png

該当するソースコード

#include

int main() {

int   i,* p;

i = 3;
i = *p;

printf("%d", i);
printf("%d", &i);
printf("%d", p);
printf("%d", *p);

}

自分で試したこと

上のコードを書きました。
これは、問題に適している答えになっていますかね?
お願いします。

0

2Answer

これは何の問題なの?

int  i; 
int *p; 私には未だにスッキリしない箇所です。

p = &i; 出題ではこの行は次の下
i = 3;  逆にするとポインタを理解し易い

printf("%d %p %p %d", i, &i, p, *p);
         この不規則な順番が引っ掛け?

 出題に反し i = 3 を後に記述してます。
これにより、p = &i が値の格納とは無関係に処理されることが確認できます。
尚、ポインタはint型ではありません。
 int *p は16進数のポインタ型(%p)の変数 p を宣言しているのですが、ポインタは値の開始アドレス位置を差し示すだけです。int *p とすることで値の長さ(ポインタ変数が利用できる終点)を同時に指定しています。
 つまり、int *p は 長さ int長 の値のアドレス番号のポインタ変数 p を宣言してます。尚、* & はポインタ演算子で + - * / のようなものです。(*が被っているが!)

1Like

Your answer might help someone💌