注意1:字符指针需要指定空间大小才可输入字符串。
char* p = new char[100]; // 指定空间大小,可输入
// char* p; // 未指定空间大小,无法输入
cin >> p;
注意2:字符指针指向申请的指定大小空间后,需用memset初始化空间,否则其中内容未知。
若未初始化就使用strcat,则会从原先未知内容后追加。
char* p = new char[9];
memset(p, 0, 8); // memset初始化后才可使用strcat从起始位置追加,否则其中内容未知,从原先内容后面追加。
strcat(p, "123"); // 自动补充'\0'。p指向的内容:123
p[2] = '\0'; // 将元素3变为'\0'。p指向的内容:12
strcat(p, "123"); // 追加会覆盖掉前一个'\0'。p指向的内容:12123
strcpy(p, "ABC"); // strcpy会从起始位置覆盖。 p指向的内容:ABC