C语言的数组可以用变量定义吗?

来源:互联网 发布:sql主外建语句 编辑:程序博客网 时间:2024/04/29 20:47

今天碰到这个问题,因此写了个小程序测试了一下.


#include <stdio.h>int num = 0;void test(){    char a[num];    printf("%d\n", sizeof(a));}int main(){    num = 10;    test();    num = 11;    test();}

是否正确?

运行结果是:10,11.

说明程序运行是正确的,但是为什么是正确的?一直没想通,谁明白的话,告诉我一声.

我有点想明白了.

在编译时,会把a记录为一个声明,在调用test时,再给a分配空间,即实现定义,num此时就是整数,因此可以运行成功.

希望我说的是对的,看到此文章的给个建议.

原创粉丝点击