>>509
>char str = {'A','B','C','D','E','F','G'};
>でもちゃんと文字列として最後にヌル文字勝手に追加されて初期化されるんですかね?

ちがう。>>499自分で言っているように
char str[(要素数)] (= 文字列リテラル);
で初期化する場合はヌル文字込で初期化される。
「文字列リテラル」ってのは"でくくられたものだよ。わかっている?
char str[] = {'h', 'o', 'g', 'e', '\0'};
の簡易記法が
char str[] = "hoge";
と思っておけば良い。

>逆に文字列としてではなく単なる文字型の配列として初期化したい場合どうすればいいんでしょうか?
下記だね。
char str[] = {'h', 'o', 'g', 'e'};

>また、ヌル文字のある要素にヌル文字以外の文字を代入した場合、自動的に次の要素にヌル文字が自動代入されるってことでしょうか?
もちろん、そんな気の利いたことはしてくれない。