首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言新手。C语言int型全局常量为什么不能用来定义数组的长度,代码如下解决方法

2012-03-22 
C语言新手。C语言int型全局常量为什么不能用来定义数组的长度,代码如下const int LENGTH 5void a()void

C语言新手。C语言int型全局常量为什么不能用来定义数组的长度,代码如下
const int LENGTH = 5;
void a();
void main(){
int arr1[LENGTH];
a();
}
void a(){
int arr2[LENGTH];
printf("%d.\n",LENGTH);
}
我在上面定义了全局常量,但是下面要用这个全局常量定义数组长度的时候却说错误。请高手指点。。。

[解决办法]
const不是常量 是常值变量,本质上是个不能改变数值的变量
所以不能用来定义数组长度 

[解决办法]
const并不代表常量,只是代表只读
[解决办法]

探讨

引用:
const不是常量 是常值变量,本质上是个不能改变数值的变量
所以不能用来定义数组长度

那怎么定义一个全局的常量呢?

[解决办法]
你可以宏定义:
#define LENGTH=5

[解决办法]
探讨
引用:
你可以宏定义:
#define LENGTH=5

你写的这个不对啊、格式就是这样吗?

[解决办法]
#define LENGTH 5

is right
[解决办法]
探讨

引用:
#define LENGTH 5

is right


这样写还是错误的,是不是需要写上类型
#define int LENGTH 5

[解决办法]
vs2005 这样写没有任何问题,直接编译通过运行都没问题。

看来c跟c++还是有不少的区别...
[解决办法]
#define LENGTH 5;
把那个分号去掉,宏定义可以简单的理解为文本替换,你的LENGTH在后文代码中被替换成了5;当然会出问题。
[解决办法]
探讨

引用:
引用:

引用:
#define LENGTH 5

is right


这样写还是错误的,是不是需要写上类型
#define int LENGTH 5


NO 宏定义是单纯的替换 LENGTH在这里神马类型也不是
看到LENGTH 就替换成 5
……

热点排行