初期化指定子は、= (等号) と、その後に続く、ポインターに入れられるアドレスを表す式によって 表されます。次の例では、変数 time と speed には double 型 、amount には double を指す型ポインターが 指定されるように定義します。この例では、 ポインター amount が total を指すように初期化が行われています。
double total, speed, *amount = &total;
コンパイラーは、添え字がない配列名を、配列の 1 番目のエレメントを指すポインターに変換 します。 配列の名前を指定することによって、配列の 1 番目のエレメントのアドレスをポインターに割り当 てることができます。 次の 2 つの定義のセットは、同じです。 定義は両方とも、ポインター student を定義し、student を section の 1 番目のエレメントのアドレスに初期化します。
int section[80]; int *student = section;
は、以下と同等です。
int section[80]; int *student = §ion[0];
初期化指定子のストリング定数を指定することによって、ストリング定数の 1 番目の文字のア ドレスをポインターに割り当てることができます。
次の例では、ポインター変数 string とストリング定数 "abcd" を定義 します。 ポインター string は、ストリング "abcd" の文字 a を指す ように初期化されます。
char *string = "abcd";
次の例では、weekdays を、ストリング定数を指すポインターの配列として定義しま す。 各エレメントは、異なるストリングを指します。 例えば、ポインター weekdays[2] は、ストリング "Tuesday" を指します。
static char *weekdays[ ] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" };
ポインターは、0 に評価される整数定数式 (例えば、char * a=0;) を 使用して、ヌルに初期化することもできます。 このようなポインターは、ヌル・ポインター です。このヌル・ポインターは、 オブジェクトを指しません。
関連参照