首先:String 是对象, Char* 是指针, Char[] 是数组。
1. 数组可以堆也可以栈。对象名称会被编译器当成同类型的指针,所以才有了
Char* p = new Char[10] 等同于 Char[] b = new Char[10]; p = b
2. 另外,数组初始化的时候必须有长度, 否则Char* P 只是一个指针而已。
Char *p = "array" 相等于 Char[] b ="array"; b=p 。 只不过数组可以通过字符串复制。
3. 数组的越界问题,需要程序员检查。vector靠编译器检查。