ポインター、ポインター変数、逆参照

ポインタは何ですか

ポインタはアドレスです
私たちは皆、コンピューターの記憶を知っています。コンピュータ内のすべてのプログラムはメモリ内で実行されます。そのため、メモリを有効活用するために、メモリを小さなメモリユニットに分割し、メモリユニットへのアクセスを良くするために、メモリユニットに番号を付けています。「ナンバリング」 ちょうど呼ばれる 住所

ポインタ変数

  • 変数がある場合は、スペース、変数名、変数の内容があります。次に、変数のアドレスの格納方法にはポインタ変数が必要です。ポインタ変数も通常の変数ですが、格納される内容は変数のアドレスです。

ポインタ変数とその初期化

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の内容を参照することに注意してください。

おすすめ

転載: blog.csdn.net/supermanman_/article/details/109286880