带有变量的 C 数组声明? [复制]

Posted

技术标签:

【中文标题】带有变量的 C 数组声明? [复制]【英文标题】:C Array Declarations with Variables? [duplicate] 【发布时间】:2015-06-17 07:05:39 【问题描述】:

我要求用户输入两个数字,然后我使用 scanf 读取它们。我将这些数字分配给变量 x 和 y:

int x;
int y;
scanf("%d %d", &x, &y);

然后我可以像这样使用变量 x 和 y 声明一个二维数组吗?

int array[x][y];

【问题讨论】:

是的,你可以,它被称为变长数组。还有其他问题吗? 【参考方案1】:

是的,你可以。 C99 和更高版本添加了这个称为variable length arrays 的功能。

【讨论】:

【参考方案2】:
scanf(%d %d, &x, &y);

错了。应该是

scanf( "%d%d", &x, &y);

关于你真正的问题,是的。在任何支持 C99 和更新版本的编译器上,您都可以这样做。没关系

int x;
int y;
scanf( "%d%d ", &x, &y);
int a[x];
int array[x][y];

这些在支持 C99 的编译器上都很好(如 gcc 、 MinGw 等)。

这是作为Arrays of Variable Length引入的功能

【讨论】:

对不起,是的,这就是我的代码中的内容,我只是在写问题时打错了。 @jsmith102894 你能编辑你的问题并解决这个问题吗?它将防止 cmets 或答案中的噪音。

以上是关于带有变量的 C 数组声明? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥在 C 中为数组声明和指向数组声明的指针动态分配的内存不同? [复制]

c++ 隐式复制构造函数是不是复制数组成员变量? [复制]

关于在C语言 声明带有一个变长数组参数的函数

在c ++中全局声明的动态数组的多个定义[重复]

malloc 和全局变量声明在 C 中将它们的变量分配到哪里? [复制]

C/c++中 数组全局变量的定义声明 与 引用声明