gpt4 book ai didi

"long long [(,)]"声明可以在 C 中以某种方式工作吗?

转载 作者:太空狗 更新时间:2023-10-29 16:05:48 25 4
gpt4 key购买 nike

我正在准备我们的编程测试,我读了这个long long A[(10,10)] 声明(它在我们类(class)之前的一些测试中),我没有更多信息关于。我所知道的唯一一件事是,通过调用 A[5][1]=something 来初始化以这种方式声明的变量是不可能的。否则,我会假设它是某种二维数组。
也可以是 comma operator但 gcc 编译器实际上无法识别它。

abc.c:3:16: error: expected ']'
long long A[10,10];
^ abc.c:3:13: note: to match this '['
long long A[10,10];

如果它是一回事,或者只是一些废话,你有什么线索吗? (我试图谷歌它,但这些东西并不那么容易找到......)
谢谢。

最佳答案

在数组声明中,需要constant-expression,它是expression 的子集。具体来说,逗号运算符和赋值表达式不是集合的一部分。

数组声明符是一种直接声明符:

direct-declarator: ... |
direct-declarator "[" constant-expression? "]";

constant-expression: conditional-expression;

expression: assignment-expression | expression "," assignment-expression;

assignment-expression: conditional-expression |
unary-expression assignment-operator assignment-expression;

所以这里的语法不允许逗号。

关于 "long long [(,)]"声明可以在 C 中以某种方式工作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41525556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com