考慮以下代碼:如何從函數中的數組返回結構體? (指針)
typedef struct fruits_s
{
char* key;
char value;
} fruits_t;
static fruits_t fruit_array[] = {
{ "Apple", 1 },
{ "Banana", 2 },
{ "Grape", 3 },
{ "Orange", 4 } };
static fruits_t* getFruitFromValue(char value)
{
int i;
for (i = 0; i < sizeof(fruit_array)/sizeof(fruit_array[0]); i++){
if (value == fruit_array[i].value){
return fruit_array[i];
}
}
}
我是新來的C和指針時需要/使用還在學習。我來自Java背景。所以,在上面的代碼中,我感到困惑的是該函數應該返回一個指針fruits_t*
?或者是其他東西?當我做fruit_array[i]
是一個指向我的結構,或結構本身?
話雖這麼說,後來在我的代碼時,我想使用的功能,是這樣的:
fruits_t* temp = getFruitFromValue(1);
或
fruits_t temp = getFruitFromValue(1);
或
fruits_t temp = &getFruitFromValue(1);
我認爲這將是回報與fruit_array [I] – dchhetri
'fruit_array [i]'是結構體,如果你想返回一個指針,'&fruit_array [i]'或者等價的'(fruit_array + i)'。 –
我想這是我的問題的一部分...我想返回一個指針,或不? –