1.
#define LIMIT 20
const int LIM =50;
static int data1[LIMIT];//合法
static int data1[LIM];//无效
const int LIM2= 2 * LIMIT;//合法
const int LIM3= 2 * LIM;//无效
const 定义的是只读变量,不能改变,但不是常量,不能用在数组的下标中(C99支持变长数组);define定义的是常量。
还有常量被编译器放在内存中的只读区域,不能去修改;而“只读变量”放在内存中开辟的一个空间来存放它的值,但是被编译器限定不能修改。
c++中,static int data1[LIM]是合法的。