przypisywanie łańcucha do innego łańcucha

Dlaczego ten kod nie działa? Dlaczego str1 nie jest przypisany do str2 ?? Wiem, że mam opcję użycia strcpy, ale chcę wiedzieć, dlaczego to nie działa?

#include<stdio.h>
int main()
{
char str1[]="hello";
char str2[10];
str2=str1;
printf("%s",str2);
return 0;
}

Ale jeśli używam wskaźników, to działa jak tutaj ..

#include<stdio.h>
int main()
(
char *s="good morning";
char *q;
q=s;
while(*q!='\0')
{
printf("%c",*q);
q++;
}
return 0;
}

To działa. Teraz łańcuch został skopiowany za pomocą wskaźników, więc dlaczego taka różnica?

questionAnswers(5)

yourAnswerToTheQuestion