C言語におけるポインタとメモリの関係

1. メモリとバイト数

メモリユニット == バイト == アドレス
整数型 int 型の int 型のバイト数は 4 で、1 バイトは 8 ビットのビットを表し、2 進数の 1 ビットは 32 ビットのビットになります。
したがって、次のように表すことができます: バイト == 8 ビット == 32 桁の 2 進数の 8 分の 1 

例: int a = 10;

この式で表される意味: 数値 10 を格納するためにメモリに 4 バイトを適用します。 

——10の2進数32桁を4つの部分に分けるというもので、1つの部分は8ビットです 

4 つのコピーには異なるアドレスがあり、最も低いアドレス ビットを持つアドレスを最初のアドレスとして使用します。

& がアドレス記号として使用される場合、&a は a によってメモリに格納されたアドレスの最初のアドレスを取得することを意味し、配列内の配列名と同じ意味を持ちます。最初のアドレスは、a の空間的位置を表すことができます。記憶の中で

2. メモリとポインタ

int * p = & a

まず、&a を変数 p に格納したいので、p はビット ポインター変数と呼ばれます。

p の型は int *

そして * は p がポインター変数であることを意味します - 証明

int は、p が指すアドレス &a 内の a の型を表します。  

int * はポインタ変数 p の型も示します

*p は一種のポインティングを表し、p に格納されたアドレスを通じて、そのアドレスが指す空間を見つけます。 *p は変数 a

p はコンテンツが保存されているアドレスであり、アドレス番号です。

図に示すように、ポインタ変数 p に格納されるのは実際にはアドレス番号である &a であり、このアドレス番号によってポインタ変数 p がこのアドレス番号で表される空間を指すように誘導されます。

ポインタ変数 p と等価です (*p) は変数 a 

したがって、ポインタ変数 p (*p) が変化すると、それに応じて変数 a も変化します。

例: *p = 0 は a = 0 と同等です。

おすすめ

転載: blog.csdn.net/2301_76445610/article/details/132167488