文字列とポインタ

1.3 文字列定数と文字列の初期宣言
 先ほどの例で、配列 data[ ] を用いずに、直接
ptr = "start";
とすることもできます。これは文字列の定数式 "start" がその文字列の先頭の文字 's' のアドレスを示すことを意味しています。
このように、C言語では配列とポインタはしばしば同一視して使われます。配列として見た方がいい場合とポインタとして見た方がいい場合の両方があるので、場合によって使いわけてください。

 また、文字列の初期宣言では、
static char data[ ] = "start";
とすることも可能です。 data[10] = "start"; との違いは、前者が文字列分(startの5文字+'\0'の1文字)、合計6文字分の領域を確保するのに対して、後者は初期化する文字列の大きさに関係なく10文字分のスペースを確保することです。ここで注意が必要なのは、配列の大きさを指定する場合、文字列の最後の'\0'が入ることを想定しておかなければいけない点です。