吃点饭饭 发表于 2020-12-3 11:29:32

c语言变量定义数组??




为什么会这样??
到底可不可以用变量定义数组??
{:10_266:} {:10_266:} {:10_266:}

风过无痕1989 发表于 2020-12-3 11:29:33

吃点饭饭 发表于 2020-12-3 15:49
在c99的标准定义中可以使用吗?

变长数组是C99添加的,支持C99、C11的软件中都可以使用

北冰羊 发表于 2020-12-3 11:54:32

定义数组不能用变量,能通过说明编译器的问题,可能做了优化。
但是定义了宏可以定义数组,比如
#define N3
int a;
这样可以 ,但是宏定义也相当于常量,不是变量。      

吃点饭饭 发表于 2020-12-3 12:12:25

北冰羊 发表于 2020-12-3 11:54
定义数组不能用变量,能通过说明编译器的问题,可能做了优化。
但是定义了宏可以定义数组,比如
#define ...

我们学校老师问我们可不可以{:10_256:},我说不可以,然后他就用dev c++编译了,确实可以,等我回去再用vs的时候又不行了,当时就老疑惑了

北冰羊 发表于 2020-12-3 12:42:15

吃点饭饭 发表于 2020-12-3 12:12
我们学校老师问我们可不可以,我说不可以,然后他就用dev c++编译了,确实可以,等我回去再用v ...

相信科学

风过无痕1989 发表于 2020-12-3 13:10:39

DEV_C++ 可以使用变长数组,但 VS2015 、VC++6.0 等微软的软件则不支持变长数组,据说,变长数组不是微软主导的,他们拒绝使用
解决的办法是将数组元素个数定义为常量:
#define n3
int main()
{
    int a;
    . . . . . .
}

吃点饭饭 发表于 2020-12-3 15:49:46

风过无痕1989 发表于 2020-12-3 13:10
DEV_C++ 可以使用变长数组,但 VS2015 、VC++6.0 等微软的软件则不支持变长数组,据说,变长数组不是微软主 ...

在c99的标准定义中可以使用吗?

永恒的蓝色梦想 发表于 2020-12-3 18:50:01

北冰羊 发表于 2020-12-3 12:42
相信科学

C语言编译器都应该支持,因为这是C语言标准。
但是这不是C++标准。VS对C标准不完全支持,所以VS不能用。

北冰羊 发表于 2020-12-3 19:00:41

永恒的蓝色梦想 发表于 2020-12-3 18:50
C语言编译器都应该支持,因为这是C语言标准。
但是这不是C++标准。VS对C标准不完全支持,所以VS不能用。

学习了

吃点饭饭 发表于 2020-12-6 15:21:53

风过无痕1989 发表于 2020-12-3 11:29
变长数组是C99添加的,支持C99、C11的软件中都可以使用

学习了

狱鬼·泪魂 发表于 2020-12-6 21:44:06

从c99标准开始C语言正式支持可变长数组
页: [1]
查看完整版本: c语言变量定义数组??