const 创建的常量为什么不能用来指定数组大小?
书中说的无效不明白为什么,用下面代码试也没出现什么问题,从在网上查的结果只知道const 和 #define有区别,也没从区别中看出为什么无效? 求指教书本内容:(c primer plus 第十六章C预处理和C库 449页)
#define LIMIT 20
const int LIM = 5;
static int datal[LIMIT]; //合法
static int data2[LIM]; //无效
const int LIM2 = 2 * LIMIT; //合法
const int LIM3 = 2 * LIM; //无效
程序代码:
#include <stdio.h>
#define LIMIT 20
int main(void)
{
const int LIM = 5;
static int datal[LIMIT];
static int data2[LIM];
const int LIM2 = 2 * LIMIT;
const int LIM3 = 2 * LIM;
printf("LIM2 = %d LIM3 = %d\n", LIM2, LIM3);
for (int i = 0; i < LIM; i++){
data2[i] = i + 2;
printf("data2[%d] = %d\n", i, data2[i]);
}
return 0;
}
/*
VC2013运行结果:
---------------------
LIM2 = 40 LIM3 = 10
data2[0] = 2
data2[1] = 3
data2[2] = 4
data2[3] = 5
data2[4] = 6
请按任意键继续. . .
---------------------
*/









