嗨我想在C中使用一個簡單的函數稍後在一個更大的代碼中使用它,但我不知道如何使用變量或函數外聲明的數組。C函數輸入變量
我想這一點,但編譯器給我的錯誤警告廣告的所有短:
#include <stdio.h>
#include <string.h>
// function declaration
int min_hour(int hour[int n]);
int main()
{
int hour[5] = {8, 8, 9, 8, 8};
int j = min_hour(hour[5]);
printf("%d", j);
}
int min_hour(int hour[int n])
{
int earliest = 0;
for (int i = 1; i <= n + 1; i++)
{
if (hour[i] < hour[i+1])
{
earliest = i;
}
else
{
earliest = i+1;
}
}
return earliest;
}
Line Col
5 24 [Error] expected expression before 'int'
10 3 [Warning] implicit declaration of function 'min_hour' [-Wimplicit-function-declaration]
14 24 [Error] expected expression before 'int'
'int min_hour(int * hour)'當你將一個數組作爲參數傳遞給一個函數時,它的第一級間接被自動轉換爲一個指針。然後以相同的方式調用它'int j = min_hour(hour);'最重要的是**總是**編譯時啓用*警告*(例如編譯字符串中的'-Wall -Wextra')並且不接受代碼編譯沒有警告或錯誤。 (你可以通過聽你的編譯器告訴你什麼來學習很多C) –
把int min_hour(int hour [int n])'改爲'int min_hour(int hour [],int n) '和'int j = min_hour(hour,5);' – eyllanesc
將數組長度作爲單獨的參數/參數傳遞,例如'int myFunction(int arr [],int size);' – ThingyWotsit