從-link-的ANSI C語法給我數組聲明以下規則:ANSI-C語法 - 數組聲明如[*]等alii
(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 '[' ']'
現在我有一些關於這些問題:
- 我可以使用(1) - (6)除(3)僅在C99中嗎?
- 什麼是(4)和(5)?關鍵字'靜態'使我困惑。
- 使用地點(6)?
什麼是以下兩個函數原型之間的區別:
void foo(int [*]);
和void foo(int []);
謝謝。
我想當你做'f(int,int,int a [*] [*])'之類的時候,這真的很重要...... – dmckee 2010-02-22 18:04:17
@dmckee:我只是把它添加到我的回答:) – AnT 2010-02-22 18:09:06
很多人在這裏圍繞相同的思路思考。偉大的思想和所有...... – dmckee 2010-02-22 19:09:41