函数可以在C中同时返回一个数组和一个变量吗?

时间:2013-10-30 11:12:55

标签: c

return length;
return user_input;

此处length是值,user_input是数组。

6 个答案:

答案 0 :(得分:1)

没有

您需要在参数中解析指针,或者(假设返回的数据以某种方式相关)定义包含数据项的struct并返回该数据项。

答案 1 :(得分:0)

不是

但是你可以将数组传递给函数,这样你就不必返回它而只需从函数中返回变量

以下是:

int function(char array[]){
      int length=0;;
      // do whatever you want to do to the array and length
      return length;
}

int main(){
    int functionReturn=0;
    char user_input[50]; // or whatever your array is called

    functionReturn = function(user_input); // this will modify the user_input array without it being returned from the function
                                           // and you will get to return the length value from function
    return 0;
 }

答案 2 :(得分:0)

struct RET {
 size_t length;
 char user_input[42];
};

struct RET foo()
{
   struct ret = { 0, '0' };
   return ret;
}

答案 3 :(得分:0)

据我所知,在C中你只能返回一个值。你甚至不能返回一个数组,你返回一个指向数组的指针。因此,除非你想创建一个带有数组指针的单独结构和一个专门用于传递和返回的整数。没有办法做到这一点。

以下是组合返回结构的方法,但通常不建议使用。

#include<stdlib.h>
#include<stdio.h>

typedef struct r{
    int *array;
    int val;
}R;

R* my_function();

int main(){
    printf("%d\n",my_function()->val);
}
R* my_function(){

    R* ret_val;
    ret_val = (R*)malloc(1*sizeof(R));
    ret_val->val = 5;
    // Assign your values to the ret_val struct.
    return ret_val;
}

答案 4 :(得分:0)

不,不能。 但是您可以返回指向数组或单个变量的指针。

答案 5 :(得分:0)

这是可能的 但是使用指针。并且C中的函数不能返回不同的数据类型。

您可以为一些数组/数字传递占位符并返回另一个。

int func(struct *user_input)

如果您有任何进一步的疑问,请告诉我!!!