C语言的数组可以用变量定义吗?
2012-10-30 17:45
302 查看
今天碰到这个问题,因此写了个小程序测试了一下.
是否正确?
运行结果是:10,11.
说明程序运行是正确的,但是为什么是正确的?一直没想通,谁明白的话,告诉我一声.
我有点想明白了.
在编译时,会把a记录为一个声明,在调用test时,再给a分配空间,即实现定义,num此时就是整数,因此可以运行成功.
希望我说的是对的,看到此文章的给个建议.
#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此时就是整数,因此可以运行成功.
希望我说的是对的,看到此文章的给个建议.
相关文章推荐
- c语言中同一函数下不可以重复定义变量
- C语言返璞归真之修改const常量和使用变量定义数组长度
- const定义的变量,可以作为数组[ ]里面的值吗?
- 数组定义时长度可以使用变量
- [c]c语言中可不可以用变量定义数组的个数
- 大数组定义在main函数中不能执行,为什么将其定义为全局变量就可以执行?
- 【原创】C语言中如何用长度变量定义数组
- error C2057: expected constant expression (C语言中数组的大小可以在程序运行时定义吗? )
- error C2057: expected constant expression (C语言中数组的大小可以在程序运行时定义吗? )
- [C语言]除非该数组为全局变量,否则只能在定义数组时获取数组长度,在传递过程中只是传递指针不能再次获取长度
- boj problem 1331 思路:快排分块 按块查找 问题:全局数组时可以定义到500W的 main函数下的数组不行~ 另外c语言比c++快 TLE可以考虑C~~具体原因待解决
- Unix下可以用变量定义数组大小?
- C语言 变量数组只能在头部定义
- 【原创】C语言中如何用长度变量定义数组
- C语言 定义变量(右左法则)
- 头文件中不可以放变量的定义
- 关于C语言数组的定义问题
- 在结构体中定义另一个结构体类型变量可以吗
- C语言-数组-1定义
- C语言学习8:malloc返回的void*类型指针不可以做更改,free双重释放,二维数组的初始化和打印,a和a[0]和a[0][0]的区别,数组指针(*p)[3],指针数组*a[10],动态内存分配版约瑟夫环,动态分配版去空格和逗号处理,二级指针与二维数组互用