明确概念:C语言不允许单独声明未定义长度的数组。
C99中,一位数组的声明(同时赋值)时可以不写数组长度。
如 int myarray[]={1,2,3,4,5}; 的原因是,编译器会根据赋值自动给出数组长度。
但是,二维数组的声明时必须写上边界。如下的写法
unsigned int grades[][] = {
{80,81,82,83,84},
{85,86,87,88,89},
{90,91,92,93,94}
};
这样会报错。
unsigned int grades[3][5] = {
{80,81,82,83,84},
{85,86,87,88,89},
{90,91,92,93,94}
};
如下修改便可以了。
如果想定义变长数组怎么办? 当然是用malloc啦,日后详解。