|
> 配列の初期化についてとstaticの事をだれか教えてください。
int a[10] = { 1, 2, 3 };
static int b[10] = { 1, 2, 3 };
void func(void)
{
int c[10] = { 1, 2, 3 };
static int d[10] = { 1, 2, 3 };
} a と b と d は、静的変数です。プログラム実行開始時に既に初期化されています。
c は、自動変数です。関数(またはブロック)に入ったときに、領域が確保され、
初期化が実行されます。入るたびに毎回実行されます。
では、a と b と d の違いは何かというと、
a は外部結合です。他のファイルから参照できます。
b は内部結合です。このファイル内で参照できます。
d は結合無しです。この関数(ブロック)内で参照できます。
|