2017-04-11 50 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

相關問題