配列について
初歩的な質問ですいませんが、質問よろしくお願いします。
◎1-----------------------------
#include<stdio.h>
int main(void)
{
char ss[10]="AB";
printf("ss=%s\n",ss);
return 0;
}
------------------------------------
◎2--------------------------------
#include<stdio.h>
int main(void)
{
char ss[10];
ss[0]='A';
ss[1]='B';
ss[2]=0;
printf("ss=%s\n",ss);
return 0;
}
-----------------------------------
◎3-------------------------------
#include<stdio.h>
#include<string.h>
int main(void)
{
char ss[10];
strcpy(ss,"AB");
printf("ss=%s\n",ss);
return 0;
}
-----------------------------------
◎4-------------------------------
#include<stdio.h>
int main(void)
{
char ss[10];
ss="AB";
printf("ss=%s\n",ss);
return 0;
}
----------------------------------
以上4つのプログラムで、◎2と◎3は正常に動くと理解できたのですが、何故、◎1は正常に動き、◎4は「'const char [3]' から 'char [10]' に変換できません。」といったようなエラーが出てしまうか分かりません。
教えていただければ嬉しいです。