为什么我不能只使用这个数组而不指定其大小?

Nor*_*mye 1 c arrays variables struct char

int main()
{
    struct Student_struct {
        char name[40];
        int age;
        float grade;
    };

    struct Student_struct student;

    printf("---------------------Student-----------------------\n\n\n");
    student.name[] = "person";
    student.age = 20;
    student.grade = 7.5;
    
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:“]”之前需要表达式

我知道我可以使用strcpy(student.name, "person") 或student.name[6] = "person",但为什么不能将其编码为student.name[] = "person"?这背后的逻辑是什么?

wqu*_*noa 5

数组大小已在结构声明中定义。在声明后使用方括号将访问数组中的元素,因此会出现错误。