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中的数组元素个数有了变化,那么循环次数也会相应变化。
这个有什么用呢?
大家好好研究下吧。
当走散了,走晕了,走累了,走烦了,告诉自己:星星在这里,陪着你,陪着我。