C言語ポインタ初心者

目次

1. ポインタとは

2. ポインタとポインタの型

3. ワイルドポインター

4. ポインタ演算



        1: ポインタとは何ですか

        実際、ポインタの本質はアドレスです。メモリ空間をより有効に利用するために、メモリを 1 つずつセルに分割します。これらのセルの単位はバイトであり、各バイトの空間はすべてこれらのアドレスは、アドレスを通じてメモリをより適切に見つけて、そのメモリを使用するためのものです。たとえば、具体的な例を使用して説明してみましょう。

32 ビット マシンでは、32 本の高レベルと低レベルのライン、1/0 (高レベル、低レベル) があり、これらの 32 のアドレス ラインは最大 2^32 のアドレスを生成でき、そのサイズは 2^ であることがわかります。 32Byteのサイズは4GBに等しいため、32ビットマシンではポインタは4GBのメモリしか管理できませんが、64ビットマシンではポインタは8GBのメモリを管理できるため、ポインタのサイズは4バイトです。バイト単位の 8 サイズ。

2 つのポインターとポインターのタイプ:

1: ポインタ変数

        名前が示すように、ポインタ変数はポインタを格納するために使用されます。これはアドレスです。数値のアドレスを使用して、アドレスの内容を見つけることができます。具体的なコードを通して説明しましょう:>      

2:ポインタ型:絵で説明しよう

このような疑問を持つ友人も多いと思いますが、32ビットマシンではポインタのサイズは4バイトでメモリ上のアドレスも管理できるのに、なぜ型を区別する必要があるのでしょうか?

この疑問がある場合は、読み続けなければなりませんが、その前に、ワイルド ポインターの概念について話さなければなりません。

3: ワイルドポインター

        ウェブ上: ワイルド ポインタは、ポインタが指す先が不明な場所です (ランダム、不正確、明示的な境界なし)。

        ワイルドポインタとはその名の通り、ポインタの指す場所が不正で使用できず、勝手に操作されてしまうことを指します。

        以下に、ワイルド ポインターの範囲に属するいくつかの状況を紹介します。

                1: ポインタは初期化されていません

                初期化を解除すると、ポインタがランダムに割り当てられ、ポインタがメモリ内のメモリをランダムに指すようになり、ポインタを使用すると、メモリ内の領域をランダムに使用して不正アクセスが発生します。    

 

2: ポインタの境界外アクセス:

        これは、特に配列を使用する場合にバグが発生しやすくなります。例で説明します。

 

3: ポインタが指すスペースが解放されます。

 では、ワイルド ポインタを回避するにはどうすればよいでしょうか?

1. ポインタの初期化

2. 範囲外のポインタに注意してください

3. ポインタは解放するスペースを指し、時間内に NULL を設定します

4. ローカル変数のアドレスを返さないようにする

5. ポインタを使用する前に、ポインタの有効性を確認してください。

ポインタを定義するときは、ポインタがどこを指しているのかを考え、境界を越えないように注意する必要があります。

4: ポインタ操作

        1ポインタ+(-)整数演算

        これは、ポインタがデータ型のアドレスに後方に移動することを意味します。たとえば、int* のポインタの場合、整数変数のサイズのスペースを後方に移動し、開くときに開きます。スペースの場合は 4 バイトで、整数のスペースをスキップして次の数値をポイントします。char* 型のポインタを使用しているため、1 バイトのスペースにしかアクセスできません。

 

2 ポインター-ポインター (演算に 2 つのポインターが使用される場合、実行できるのは減算演算のみです)

2 つのアドレスの間に含まれる要素を表します

また、ポインタ-ポインタの前提条件は、2 つのポインタが同じ空間を指していることです。これは、2 つのポインタ間で要素の数がどれだけ異なるかが不明であるため、計算結果を計算することができないためです。

        この記事はここで終わります。お待たせしました。

 

        

おすすめ

転載: blog.csdn.net/2201_75964502/article/details/130713283