C语言中,数组长度确实不能变么?

      一直有个困扰,用变量做数组长度,C不允许。那么,我想做个变化的数组,怎么办呢?

      这周做项目时,有人教了一招,可以“变相”地改变C语言中数组的长度。

      上代码:

      新建一个win32 控制台应用程序,添加main.h、main.c

      main.h中的代码:

int array_c [] = {1,2,3,4,5,6};

  main.c中代码:

#include "main.h"

#define ARRAYLENGTH (sizeof(array_c)/sizeof(int))

int main() {
int i = 0;

for (i = 0;i < ARRAYLENGTH;i++) {
printf ("%d\n",i);
}
return 0;
}

那么main.c中的循环,执行了多少次呢?

6次。

如果,main.h中的数组元素个数有了变化,那么循环次数也会相应变化。
这个有什么用呢?

大家好好研究下吧。

posted @ 2011-11-13 22:31  arrow'  阅读(1608)  评论(3编辑  收藏  举报