まだまだ迷うので覚書。
例外が多すぎるのが混乱の原因?

文字列(文字ではない)の代入は基本的に不可。
 例外として宣言の時はok

 × char test[40];

      test = "hogehoge";
 ○ char test[0] = "hogehoge"

 宣言後の変数へ文字列代入はstrcpy,strcatか一文字ずつ代入

 ○ char test[40];
      strcpy(test, "hogehoge");

 ○ char test[40];
       for (i=0; i<9 i++){
 test[i] = h;  ←これだと次の文字がfor文内で選べない。。
       }