присвоение строки другой строке

Почему этот код не работает? Почему str1 не назначен на str2 ?? Я знаю, что у меня есть возможность использовать strcpy, но я хочу знать причину, почему это не работает ??

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

Принимая во внимание, что если я использую указатели, чем это работает как здесь ..

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

Это работает. Теперь строка была скопирована с помощью указателей, так почему такая разница?

Ответы на вопрос(5)

Ваш ответ на вопрос