2017-04-11 24 views
-6
if(!saveItems(item[], DATAFILE, NoOfRecs)) 

的错误是:前']'标记之前的期望表达式? ç

预计表达“]”令牌

+4

这里没有太多介绍,但是你可能想'if(!saveItems(item,DATAFILE,NoOfRecs))''。 –

回答

1

您还没有指定您要传递给函数什么元素数组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))

+0

符号'item []'在函数原型中是合法的。看起来OP很可能试图在这里使用一个数组作为函数'saveItems()'的参数。在函数调用中使用'item'将一个指向'item []'的第一个元素的指针作为参数,因为数组标识符在大多数表达式中衰减为指针。 –

+0

是的。我应该提到这一点。 'item []'是正确的语法,如果你使用它作为函数原型中的参数。但是当你调用一个函数时,'item []'是不正确的。 – user91656

+0

谢谢; @ user91656 if(!saveItems(item,DATAFILE,NoOfRecs))is work ....我虽然有一个数组[...]我只是开始学习编程,所以..... thx for帮助;) – giga

相关问题