c语言数组定义时报错


#include <stdio.h>
void main()
{
    char a[5][20];
    a[5][20]={"James.lek","Bench.green","New.stike","Pop.linix","pl.James"};
    
    
 } 

编译时发生错误
expected expression before '{' token
recipe for target 'i.o' failed
请问这是啥情况

初始化器只能在初始化的时候用
定义之后再用就语法错误了

#include <stdio.h>
void main()
{
    char a[5][20] = {"James.lek", "Bench.green", "New.stike", "Pop.linix", "pl.James"};
}

其实这个和一维数组是一样的,就好像你定义int a[5]
之后再赋值的时候,你会发现使用a[5]出错了,因为里面索引只有0到4,定义的时候int a[5]的时候可以对里面5个进行逐一赋值,但是定义之后,a[i]只能代表一个元素,emm,表述的不少很清楚,见谅