原因,定義數組的時候使用變量來定義數組長度。
如下代碼:
int a = 10;
char b[a]; //編譯不報錯
//char b[a] = "jfkd"; //報錯,使用變量定義長度時,不可在定義時同時進行初始化賦值,需要在之后進行賦值
printf("b = %s, len = %d:%d\n", b, strlen(b), sizeof(b));
如下代碼則無問題:
int a = 10;
char b[a]; //編譯不報錯
strcpy(b, "jfdljf");
printf("b = %s, len = %d:%d\n", b, strlen(b), sizeof(b));
原因:在C中,使用變量來定義數組長度是,這個數組可以定義,卻不能同時進行初始化賦值,需要在之后賦值。