我从 -link- 获取的 ANSI C 语法为我提供了以下关于数组声明的规则:
(1) | direct_declarator '[' type_qualifier_list assignment_expression ']'
(2) | direct_declarator '[' type_qualifier_list ']'
(3) | direct_declarator '[' assignment_expression ']'
(4) | direct_declarator '[' STATIC type_qualifier_list assignment_expression ']'
(5) | direct_declarator '[' type_qualifier_list STATIC assignment_expression ']'
(6) | direct_declarator '[' type_qualifier_list '*' ']'
(7) | direct_declarator '[' '*' ']'
(8) | direct_declarator '[' ']'
现在我有一些关于这些的问题:
- 我可以只在C99中使用 (1) - (6) 中除了 (3) 吗?
- (4) 和 (5) 是用来做什么的? 关键字 'static' 让我感到困惑。
- 何时使用 (6)?
以下两个函数原型有什么区别:
void foo(int [*]);
和void foo(int []);
谢谢。
f(int, int, int a[*][*])
或类似操作时... - dmckee --- ex-moderator kitten