char str[];
str = "i love china"; // 編譯錯誤
char str[]; 為不完全類型,未指定大小且無初始化列表,編譯器無法分配存儲空間。str 為常量指針,不可作為左值整體賦值。
// 1. 定義時初始化(編譯器自動計算長度)
char str[] = "i love china";
// 2. 指定大小再複製
char str[20];
strcpy(str, "i love china"); // 需 #include
// 3. 使用 std::string (推薦)
std::string str = "i love china";
在定義數組時一般要指明數組長度,如果定義時直接初始化,可以不指定長度,如:char str[]="i love china"; 所以你的寫法在語法上是錯誤的。