return length;
return user_input;
这里length是一个值,user_input是一个数组。
不。
您需要将指针解析为参数,或者(假设返回的数据以某种方式相关)定义struct
包含数据项的 a 并将其返回。
没有
但是你可以将你的数组传递给函数,这样你就不必返回它,你可以简单地从函数中返回变量
方法如下:
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;
}
struct RET {
size_t length;
char user_input[42];
};
struct RET foo()
{
struct ret = { 0, '0' };
return ret;
}
据我所知,在 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;
}
不,它不能。但是您可以返回指向数组或单个变量的指针。
这是可能的但使用指针。C 中的函数不能返回不同的数据类型。
您可以传递某个数组/数字的占位符并返回另一个。
int func(struct *user_input)
如果您有任何进一步的疑问,请告诉我!!!