配列の要素は任意の型にすることができますが、文字列は長さを決定するためのよく知られた規則を使用する特別な型の配列です。
言語には、文字列を単に文字の配列として扱う言語と、文字列を特別な型として扱う言語の 2 種類があります。 C は前者のカテゴリに属しますが、C 文字列が NUL 文字で終了するという追加が 1 つあります。配列の値は配列内の最初の要素のアドレス (またはその要素へのポインタ) と同じであるため、一般に C 文字列と文字ポインタは同等です。
配列の長さは任意です。配列名が関数の引数として使用される場合、関数は配列名自体から配列のサイズを知る方法がないため、何らかの規則を導入する必要があります。文字列の場合、この規則は、文字列の最後の文字が ASCII 文字 NUL('注: この現象を「C ユーモア」と呼ぶ人もいます。ほとんどの C プログラマーは、一日中プログラムを書くことに悩み、忙しいスケジュールをほとんど休まないのはまさにこのユーモアのためです。