Previous: 配列の操作
Up: 配列 I
Next: 標準関数 --- getchar(), putchar()
Previous Page: 配列の操作
Next Page: 標準関数 --- getchar(), putchar()
一般に、変数は宣言と同時に初期化をする事が出来る。
int a = 0; /* 0で初期化 */ char c = 'a'; /* 'a' で初期化 */
これは、以下のように、実行文で行うのとは少し違う。
int a; char c; a = 0; /* 0を代入 */ c = 'a'; /* 'a' を代入 */
初期化は、コンパイル時にされるのに対して、実行文で行うと実行時に 代入されるという違いがある。( 実用的には、大した違いはないが。 )
さて、配列の初期化であるが、実は、配列の初期化には制限がある。 変数の初期化は、常に行えるのに対して、配列では、外部( グローバルな配列 ) または静的( まだこれは学習していない )であるときにしか行えない。 配列が関数の外で定義されるグローバルな配列である時を考えると、 配列の初期化は、次のように行える。
#include <stdio.h>int array[5] = {4, 3, 8, 9, 0}
main(){
これで、大きさ 5 の配列 array について、array[0]=4, array[1]=3, array[2]=8,array[3]=9, array[4]=0 が代入される。
更に、上の宣言、初期化は次のように簡単に書くことも出来る。
#include <stdio.h>int array[] = {4, 3, 8, 9, 0}
main(){
この場合、配列の大きさを指定していないが、初期化の個数が5個なので、自動的に 大きさ5の配列が宣言されたことになる。