正确定义数组有什么要求?


int N=2008;
int num[N];


#define N 2008;
int num[N];
有什么不一样?
为什么第二种就正确,第一种就是错误的?

  • C语言是运行之前先分配内存,如果你使用变量(也就是int N的形式)进行数组的定义,那么运行之前程序并不知道N是多大,所以没法给数组分配内存
  • 而define是宏定义,它是预定义,表示在程序运行之前先进行声明,所以程序运行之前已经知道N是多少,这样就可以给数组分配内存了
  • 麻烦点个采纳~结构体那个提问我也回复你了,请查看一下~~

如果我没有记错的话,宏定义没有分号,也就是第二个代码第一行末尾没有分号

一维数组的定义方法为:类型说明符+数组名+[常量表达式];
类型说明符是任一种基本数据类型或构造数据类型。
数组名是用户定义的数组标识符。
方括号中的常量表达式表示数组元素的个数或者长度,可以是常量或符号常量,不能为变量。