C ポインタ
ポインターの作成
前の章で、参照演算子 &
を使用して変数のメモリ アドレスを取得できることを学びました。
例
int myAge = 43; // an int variable
printf("%d", myAge); // Outputs the value of myAge (43)
printf("%p", &myAge); // Outputs the memory address of myAge (0x7ffe5367e044)
int
など) を指し、演算子を使用して作成されます。
使用している変数のアドレスがポインタに割り当てられます。
例
int myAge = 43; // An int variable
<strong>int* ptr = &myAge;</strong> // A pointer variable, with the name ptr, that stores the address of myAge
// Output the value of myAge (43)
printf("%d\n", myAge);
// Output the memory address of myAge (0x7ffe5367e044)
printf("%p\n", &myAge);
// Output the memory address of myAge with the pointer (0x7ffe5367e044)
printf("%p\n", ptr);
例の説明
int 変数 (myAge
) を指す、ptr
という名前のポインタ変数を作成します。 ポインタの型は、操作している変数の型 (この例では int
) と一致する必要があることに注意してください。
&
演算子を使用して、myAge 変数のメモリ アドレスを保存し、それをポインタに割り当てます。
現在、ptr
は myAge
のメモリ アドレスの値を保持しています。
逆参照
上の例では、ポインタ変数を使用して変数のメモリ アドレスを取得しました (& 参照演算子と併用)。
演算子 (逆参照演算子) を使用して、ポインタが指す変数の値を取得することもできます。
例
int myAge = 43; // Variable declaration
int* ptr = &myAge; // Pointer declaration
// Reference: Output the memory address of myAge with the pointer (0x7ffe5367e044)
printf("%p\n", ptr);
// Dereference: Output the value of myAge with the pointer (43)
printf("%d\n", *ptr);
注意してください*
sign はコード内で 2 つの異なることを行うため、ここでは混乱を招く可能性があります。
- 宣言で使用する場合 (
int* ptr
)、それはポインター変数. - 宣言で使用されていない場合は、逆参照演算子.
お役立ち情報:C でポインター変数を宣言するには、次の 2 つの方法があります。
int* myNum;
int *myNum;
ポインターに関する注意事項
ポインターは、C を他のプログラミング言語から際立たせるものの 1 つです。パイソンとジャワ.
これらは、コンピューターのメモリ内のデータを操作できるため、C では重要です。これにより、コードを削減し、パフォーマンスを向上させることができます。リスト、ツリー、グラフなどのデータ構造に精通している場合は、ポインターがそれらの実装に特に役立つことを知っておく必要があります。また、ポインターを使用する必要がある場合もあります。たとえば、ファイル.
しかし、注意してください;ポインタは、他のメモリ アドレスに格納されているデータを損傷する可能性があるため、注意して取り扱う必要があります。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。