ポインタの宣言
CoddyのCジャーニー「Logic & Flow」セクションの一部 — レッスン 2/63。
ポインタが何であるかを理解したところで、次はそれらを作成する方法を学びましょう。ポインタ変数の宣言は、そのポインタがどのデータ型を指すかをコンパイラに伝える特定の構文に従います。
ポインタを宣言するための基本構文は次のとおりです。data_type *pointer_name;
int *ptr; // 整数へのポインタを宣言します
char *ch_ptr; // 文字へのポインタを宣言します
float *f_ptr; // 浮動小数点数へのポインタを宣言しますアスタリスク(*)が、これをポインタ宣言にしている要素です。これは、この変数が実際のデータ値ではなく、メモリ番地を格納することをコンパイラに伝えます。int *ptr; と宣言すると、「ptrは整数型変数のアドレスを格納できるポインタである」と伝えていることになります。
アスタリスクの前のデータ型は、ポインタがどの種類のデータを指すかを指定していることに注目してください。データ型によってメモリ空間の占有量が異なり、コンパイラは適切なメモリ管理のためにこの情報を知る必要があるため、これは重要です。
チャレンジ
簡単適切なポインタ宣言の構文を示すCプログラムを作成してください。プログラムは以下のことを行う必要があります:
int_ptrという名前の整数へのポインタを宣言するchar_ptrという名前の文字へのポインタを宣言するfloat_ptrという名前の浮動小数点数へのポインタを宣言する%p書式指定子を使用して、printfで各ポインタに格納されているメモリ番地を出力する
出力は、以下の形式で3つのポインタのアドレスを表示する必要があります:
Integer pointer: [address]
Character pointer: [address]
Float pointer: [address]実際のメモリ番地は異なりますが、形式とラベルは上記と完全に一致させる必要があります。
チートシート
ポインタ変数を宣言するには、次の構文を使用します:data_type *pointer_name;
int *ptr; // 整数へのポインタを宣言します
char *ch_ptr; // 文字へのポインタを宣言します
float *f_ptr; // 浮動小数点数へのポインタを宣言しますアスタリスク(*)はこれがポインタ宣言であることを示し、この変数がメモリ番地を格納することをコンパイラに伝えます。アスタリスクの前のデータ型は、ポインタがどのような種類のデータを指すかを指定します。
ポインタのアドレスを表示するには、printf で %p 書式指定子を使用します。
自分で試してみよう
#include <stdio.h>
int main() {
// TODO: ここでポインタを宣言してください
// TODO: 指定された形式を使用してポインタのアドレスを出力してください
return 0;
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。