关于字符数组初始化的有关问题

关于字符数组初始化的问题
我在读到的一本c语言书上写着:字符串赋值给一个字符数组是无效的,除非在一条声明语句中完成。
 我试验了一下的确如此:
char oo[8];
oo[8] = "england";
是错误的,编译器提示:cannot convert from 'char [8]' to 'char'

char oo[] = "england";
就能顺利编译,这是为什么阿?也许有人会说就是这么规定的。但我想凡事都有个道理,哪位高手能帮忙回答一下,谢谢。

------解决方案--------------------
其实这也是我的个人习惯而已

但是,不要把一个常量出现在你的代码中,这时一个基本的原则

手工加\0\0也是习惯,显式的写出字符串末尾,这为你调试程序,和别人读你的程序的时候会带来方便的

其实完全可以写成

strcpy(&oo[0], "england");


没人敢说一个错的~~~~呵呵~~~~~~