將字符串常量賦給\(char*\)會怎么樣?
1. 先看下在C++中給\(char*\)賦予一個常量字符串會有怎樣的結果:
在VC環境下運行, VC直接禁止這樣的操作通過編譯, 拋出Error.

GCC下則拋出Warning, 這是GCC下給出的warning信息:

2.如果是在C標准下, 那么將字符串常量賦給\(char*\)可以正常編譯通過.
且C語言標准下,
這是正常的. 但是C++中這樣修改賦值則會導致程序無法正常結束. 因而更推薦的寫法是\(const\) \(char*\), 這會避免后續代碼中出現修改字符串常量的行為.

2. \(char*\) 與 \(char[]\), \(char = new char[n]\)區別在哪?
char *a = "12345"; // 字符串常量, 更推薦寫const char*
char b[] = "12345"; // 棧區開辟空間, 動態
char *c = new char[6]; // 堆區開辟空間, 動態
strcpy(c, "12345");
delete []c;
后兩種寫法中都可以對字符串的內容進行修改.
