考虑以下代码:如何从函数中的数组返回结构体? (指针)
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)'。 –
我想这是我的问题的一部分...我想返回一个指针,或不? –