ポインターの初期化

初期化指定子は、= (等号) と、その後に続く、ポインターに入れられるアドレスを表す式によって 表されます。次の例では、変数 timespeed には double 型 、amount には double を指す型ポインターが 指定されるように定義します。この例では、 ポインター amount total を指すように初期化が行われています。

      double total, speed, *amount = &total;

コンパイラーは、添え字がない配列名を、配列の 1 番目のエレメントを指すポインターに変換 します。 配列の名前を指定することによって、配列の 1 番目のエレメントのアドレスをポインターに割り当 てることができます。 次の 2 つの定義のセットは、同じです。 定義は両方とも、ポインター student を定義し、studentsection の 1 番目のエレメントのアドレスに初期化します。

      int section[80];
      int *student = section;

は、以下と同等です。

      int section[80];
      int *student = &section[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;) を 使用して、ヌルに初期化することもできます。 このようなポインターは、ヌル・ポインター です。このヌル・ポインターは、 オブジェクトを指しません。

関連参照

IBM Copyright 2003