0
return length;
return user_input;

这里length是一个值,user_input是一个数组。

4

6 回答 6

1

不。

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

于 2013-10-30T11:17:16.070 回答
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;
 }
于 2013-10-30T11:15:28.423 回答
0
struct RET {
 size_t length;
 char user_input[42];
};

struct RET foo()
{
   struct ret = { 0, '0' };
   return ret;
}
于 2013-10-30T11:21:18.593 回答
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;
}
于 2013-10-30T11:24:15.340 回答
0

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

于 2013-10-30T11:37:09.153 回答
0

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

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

int func(struct *user_input)

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

于 2013-10-30T11:38:41.403 回答