回答
您还没有指定您要传递给函数什么元素数组item
的。
item[]
并不意味着什么。它没有价值。你必须把一个数字放入括号中。该数字是数组的元素。数组中的每个元素都有自己的值。
例断码的地方犯同样的错误是由:
#include <stdio.h>
int main(void)
{
int my_array[3] = {1, 2, 3};
my_array[] = 1; // ERROR HERE!
return 0;
}
如果您尝试进行编译,你会得到这样的:
1.c: In function ‘main’:
1.c:6:11: error: expected expression before ‘]’ token
,因为我没有告诉my_array
哪些因素我想分配1。我想将它分配给第一个元素(my_array[0]
),第二个元素(my_array[1]
)还是第三个元素(my_array[2]
)?编译器不知道。你必须告诉它。
如果item
如果一个标量(而不是一个数组),摆脱[],它不应该在那里。
如果您尝试将整个数组作为参数传递,即使传递数组,也不要使用括号。如果你想传递整个数组作为参数,请执行以下操作: if(!saveItems(item, DATAFILE, NoOfRecs))
符号'item []'在函数原型中是合法的。看起来OP很可能试图在这里使用一个数组作为函数'saveItems()'的参数。在函数调用中使用'item'将一个指向'item []'的第一个元素的指针作为参数,因为数组标识符在大多数表达式中衰减为指针。 –
是的。我应该提到这一点。 'item []'是正确的语法,如果你使用它作为函数原型中的参数。但是当你调用一个函数时,'item []'是不正确的。 – user91656
谢谢; @ user91656 if(!saveItems(item,DATAFILE,NoOfRecs))is work ....我虽然有一个数组[...]我只是开始学习编程,所以..... thx for帮助;) – giga
- 1. 模板错误期望主表达式在'>'标记之前
- 2. 'struct'之前的期望表达式
- 3. 'char'之前的期望表达式
- 4. “错误:期望'<='标记之前的主表达式”我做错了什么?
- 5. C++预期')'之前';'令牌预期主要表达式')'标记
- 6. 在strsafe.h中的','标记之前的预期主表达式
- 7. C中的'='标记之前的预期表达式
- 8. 预期主表达式前“*”标记
- 9. 预期主表达式前“*”标记
- 10. 在']'标记之前的预期主表达式
- 11. 错误:在`>`标记之前预期的主要表达式
- 12. 错误:在'='标记之前的预期表达式
- 13. 预期的表达式在'{'标记之前
- 14. '!='标记之前的预期表达式...我错在哪里?
- 15. C - 在'='标记之前的预期表达式...在线没有'='
- 16. #define问题 - “=”标记之前的预期表达式
- 17. 预期'*'标记之前的主表达式?
- 18. C++错误:错误:期望'||'之前的主表达式令牌
- 19. 错误:期望X令牌之前的主表达式
- 20. ''''令牌之前期望的主表达式
- 21. 错误:'DATA/*之前的期望表达式:typedef struct DATA DATA */
- 22. 函数错误“char之前的期望表达式”?
- 23. 错误:结构之前的期望表达式
- 24. 错误:预期表达式“%”标记之前
- 25. Excel VBA XPath表达式错误 - 期望的标记')'找到':'
- 26. 获取错误:期望的标识符或'('在'{'标记之前
- 27. 代码块C++在枚举之前期望预期的主表达式
- 28. 错误:期望“__attribute__”之前的主表达式;错误:预期';' “__attribute__”
- 29. '。'之前的预期主要表达式
- 30. 期待'char'之前的主表达式
这里没有太多介绍,但是你可能想'if(!saveItems(item,DATAFILE,NoOfRecs))''。 –