辨析
下面两种类型
char* a = "abc"; //①
char b[] = "123"; //② 123\0
char arr[14] = "ABC"; //③
strcat(arr, a);
上面2与3相同,只是相等一个是预留长度,一个是实体长度,但是好像如果对于2只是声明,没有赋值,那么好像就相等于是指针
分析
1在vs22中是由问题的,确实也不规范,因为abc为const,存储到常量区,你一个变量指针,标准还的是const char* a = "abc"
a只是个指针,如上面定义程序运行就执行到栈区,"abc"为常量
char* a = "abc"; //①
char b[] = "123"; //② 123\0
char arr[14] = "ABC"; //③
strcat(a, arr);
上面这个程序就由问题,a为常量区,不能执行更来与strcat向驳