二维数组的定义问题
各位大神,小弟想请问下
二维数组的定义中不能带变量,也就是说比如:
int i;
int j;
int blocks[i][j] ;
这样是错误的。
但是今天我们老师说了一种:
#define i 6;
#define j 6;
int blocks[i][j];
可是不知道为什么 我在VS2010上这样就报错;
求大神指点。
[解决办法]
//宏后面没有分号
#define i 6
#define j 6
[解决办法]
C89编译器不支持变长数组,所以在定义数组时需要指定数组的长度。宏定义是在预编译阶段等价替换的,和在数组里填入两个常量差不多的。不过,宏定义的好处比填常量要好的多,便于程序的更新和维护。
不过C99会支持变长数组。
[解决办法]
数组与动态分配的不同就是这样它必须指明数组的大小,而动态分配则可以使用变量因为一个是在编译期间知道数组大小的,而动态的则是在动态运行期间知道的