Cポインター

ポインターは、CおよびC ++プログラミングの強力な機能です。ポインタを学習する前に、Cプログラミングのアドレスについて学習しましょう。

Cのアドレス

プログラムに変数varがある場合は、&varはメモリ内のアドレスを提供します。

scanf()関数を使用している間アドレスを何度も使用しました。

ここでは、ユーザーが入力した値がvar変数のアドレスに格納されています。実際の例を見てみましょう。

出力

var: 5 address of var: 2686778

注:上記のコードを実行すると、おそらく別のアドレスが取得されます。

Cポインタ

ポインタ(ポインタ変数)は、値ではなくアドレスを格納するために使用される特別な変数です。

ポインタ構文

ポインタを宣言する方法は次のとおりです。

ここでは、intタイプのポインタpを宣言しました。

あなたこれらの方法でポインタを宣言することもできます。

ポインタを宣言する別の例を見てみましょう。

ここでは、ポインタp1と正規変数p2を宣言しました。

ポインタへのアドレスの割り当て

例を見てみましょう。

ここでは、c変数に5が割り当てられています。そして、cのアドレスがpcポインタに割り当てられます。

ポインタが指すものの値を取得する

ポインタが指すものの値を取得するには、*演算子。例:

ここでは、cのアドレスがpcポインターに割り当てられています。そのアドレスに格納されている値を取得するために、* pcを使用しました。

注:上記の例では、pcはポインターであり、*pcではありません。 *pc = &c;

ちなみに、*は逆参照演算子と呼ばれます(ポインタを操作する場合)。ポインタを操作し、そのポインタに格納されている値を提供します。

ポインタが指す値の変更

例を見てみましょう。

cのアドレスをpcポインタに割り当てました。

次に、cの値を1に変更しました。pcとcのアドレスが同じですが、*pcは1を与えます。

別の例を見てみましょう。

cのアドレスをPCポインタに割り当てました。

次に、*pc = 1;<を使用して*pcを1に変更しました。 / div>。 pcとcのアドレスは同じなので、cは1になります。

もう1つの例を見てみましょう。

最初は、 cのアドレスはpc = &c;を使用してPCポインタに割り当てられます。cは5なので、*pcは5になります。

次に、pc = &d;を使用してdのアドレスがPCポインタに割り当てられます。dは-15なので、*pcは-15になります。 。

例:ポインタの動作

動作例を見てみましょう。

出力

Address of c: 2686784Value of c: 22Address of pointer pc: 2686784Content of pointer pc: 22Address of pointer pc: 2686784Content of pointer pc: 11Address of c: 2686784Value of c: 2

プログラムの説明

  1. int* pc, c;

    こちら、タイプintのポインタpcと通常の変数cが作成されます。
    pcとcは最初は初期化されていないため、ポインタpcはアドレスなしまたはランダムなアドレス。また、変数cにはアドレスがありますが、ランダムなガベージ値が含まれています。
  2. c = 22;

    これにより、変数cに22が割り当てられます。つまり、22は変数cのメモリ位置に格納されます。
  3. pc = &c;

    これにより、変数cのアドレスがポインタpcに割り当てられます。
  4. c = 11;

    これにより変数cに11が割り当てられます。
  5. *pc = 2;

    これにより、ポインタpcが指すメモリ位置の値が2に変更されます。

ポインタを操作する際のよくある間違い

ポインタpcでcのアドレスをポイントします。次に、

これは初心者がしばしば混乱するポインタ構文の例です。

なぜエラーが発生しなかったのですか? int *p = &c;

を使用するのは、

どちらの場合も、ポインターpを作成しています(*p)そしてそれに&cを割り当てます。

この混乱を避けるために、次のようなステートメントを使用できます。

これで、ポインターとは何かがわかったので、その方法を学習します。 ポインタは、次のチュートリアルの配列に関連しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です