C语言关于字符型数据的有关问题

C语言关于字符型数据的问题
各位高手,大家好,我在VC++ 6.0里面声明了这样一个变量
char m[20]={'a','b',"mnopqrst"};

但是编译器并不报错,这是为什么,这个声明本质上是对的吗?

------解决方案--------------------
数组的初始化,编译可以通过,但是会很危险,'a'和'b'都没有问题,但是"mnopqrst"的赋值是不可预料的。
------解决方案--------------------
估计是说你不知道在这块内存中存的是什么吧。
------解决方案--------------------
探讨
各位高手,大家好,我在VC++ 6.0里面声明了这样一个变量
char m[20]={'a','b',"mnopqrst"};

但是编译器并不报错,这是为什么,这个声明本质上是对的吗?