「プログラミングWindows第5版(上)」のP.53にこんな記述がありました。

配列が大域的であれば(つまり、関数の外で定義されていれば)、
文字列配列は次のような文で初期化できる。

char a[] = "Hello!";

この配列を関数の局所変数として定義する場合には、
次のようにstatic変数として定義しなければならない。

static char a[] = "Hello!";


なんでだー!!
関数が呼ばれるたびに、文字列が配列にコピーされるのを防ぐためですか?
でも、「定義しなければならない」って……。