关于字符串解决方法

关于字符串char str[10]strhello!//错误与char str[10]hello!//正确有啥区别?、、为什么谭浩强的书

关于字符串
char str[10];
str="hello!"; //错误

char str[10]="hello!"; //正确
有啥区别?、、
为什么谭浩强的书上说一个合法。。。一个不合法啊???

[解决办法]
str="hello!";
/////
这个左右类型不同
左边是一个char [10]
右边是一个const char [7]
[解决办法]
无法从“const char [7]”转换为“char [10]”
[解决办法]
str="hello!"; //错误
数组名是一个常量地址,不能赋值