ポインタは何ですか
ポインタはアドレスです
私たちは皆、コンピューターの記憶を知っています。コンピュータ内のすべてのプログラムはメモリ内で実行されます。そのため、メモリを有効活用するために、メモリを小さなメモリユニットに分割し、メモリユニットへのアクセスを良くするために、メモリユニットに番号を付けています。「ナンバリング」 ちょうど呼ばれる 住所
ポインタ変数
- 変数がある場合は、スペース、変数名、変数の内容があります。次に、変数のアドレスの格納方法にはポインタ変数が必要です。ポインタ変数も通常の変数ですが、格納される内容は変数のアドレスです。
ポインタ変数とその初期化
1.&a:アドレスを取る(単一演算子):この時点で、&は変数aのアドレスに移動することを意味します
scanf("%d",&a)
2、int * p =&a;これは、ポインタ変数を定義するためのものです このとき、int * pはint型へのポインタpを定義します。
int main()
{
int a = 10;
int*p = &a;
printf("%d\n", a);
printf("%p\n", &a);
printf("%p\n", p);
system("pause");
return 0;
}
実行結果は次のとおりです。
10
00D8FDCC
00D8FDCC
&aはaのアドレスを表し、ポインタ変数pはaのアドレスを表すことがわかります。
3、* p:参照解除 :参照する値は、アドレスではなく、ポインターが指す変数の値です。
int main()
{
int a = 10;
int*p = &a;
printf("%d\n", a);
printf("%p\n", &a);
printf("%p\n", p);
printf("%d\n", *p);
system("pause");
return 0;
}
実行結果は次のとおりです。
10//------->对应的a的值
00EFFA74//-------->对应的是a的地址
00EFFA74//--------->对应的是a的地址
10//-------->对应的a变量的内容
- 複数の逆参照
int main()
{
int a = 10;
int*p = &a;
int* q = p;
printf("p = %p\n", p);
printf("*p = %d\n", *p);
printf("q = %p\n", q);
printf("*q = %d\n", *q);
system("pause");
return 0;
}
運用結果
p = 008FFCA0
*p = 10
q = 008FFCA0
*q = 10
请按任意键继续. . .
int * p = aでは、pは変数aのアドレスを参照し、* pは変数aの内容を参照することに注意してください。