c语言函数接收数组 c语言怎么接收函数返回值

C语言子函数如何返回一个数组,主函数如何接收?一般是需要主函数提供保存数据的数组,在参数中给出数组起始地址,然后子函数在其中填充,比如要准会的整数是56
void fun(int *a,int b) { ... }
void main() { int a[20];
fun(a,56);
}
C语言中如何用gets();语句来接收一个二维数组gets从标准输入设备读字符串函数 。可以无限读取c语言函数接收数组,不会判断上限c语言函数接收数组 , 以回车结束读取c语言函数接收数组,所以程序员应该确保bufferc语言函数接收数组的空间足够大 , 以便在执行读操作时不发生溢出 。从stdin流中读取字符串 , 直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中 。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串 。
因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组 。对于每行字符串,使用sscanf读取每个数 。
例如c语言函数接收数组:
char s[100];
int a[3][3],i;for(i=0;i3;i){
gets(s);
sscanf(s,"%d%d%d",s[i],s[i] 1,s[i] 2);
}
C语言设计函数:接受一个二维数组,用指针方式返回数组的最大值,最小值#include stdio.h
void get_val(int array[][200], int m, int n, int *max, int *min)
{
int i, j;
for(*max = array[0][0], *min= array[0][0], j = 0; jm; j){
for(i = 0; in; i){
if(*maxarray[j][i]){
*max = array[j][i];
}
if(*minarray[j][i]){
*min = array[j][i];
}
}
}
}
int main(int argc, char *argv[])
{
int array_test[100][200];
int j, i, max, min;
for(j = 0; j100; j){
for(i = 0; i200; i){
array_test[j][i] = i*j;
}
}
get_val(array_test, 100, 200, max, min);
printf("max:%d,min:%d\n",max,min);
}
编译通过并通过测试,另外还可以通过指针传递:
void get_val(int *array, int m, int n, int *max, int *min)
{
int i, j;
for(*max = *array, *min= *array, j = 0; jm; j){
for(i = 0; in; i){
if(*max*(array j*n i)){
*max = *(array j*n i);
}
if(*min*(array j*n i)){
*min = *(array j*n i);
}
}
}
}
c语言函数怎么传入一个二维数组这样传c语言函数接收数组:
函数声明:Func(变量类型 *[二维数组c语言函数接收数组的列长] arry);
char arry[][4] ;
Func(arry);
c语言函数怎么调用数组部分一、数组可定义为全局变量,函数直接调用 。
二、数组可定义为局部变量,再通过参数传递到函数中调用(实参传数组名 , 表示数组首地址,也可通过指针或数组名 数字来传递数组局部地址) 。
三、main函数想要调用函数返回的数组,可用static定义静态变量或malloc定义动态数组(字符串常量也可返回使用,但局部变量,在函数调用结束会被释放 , 不能作为返回地址使用) 。
下面是演示代码:
#include stdio.h
#include string.h
#include malloc.h
char str1[]="我是全局变量数组";
char *fun0(char str2[]);
char *fun1();
char *fun2();
int main()
{
char *str3=NULL,*str4=NULL,*str5=NULL;
char str2[]="我是main函数的局部数组变量";
str3=fun0(str2);
printf("str3:%s,fun函数调用结束 , 我的地址依然可以使用\n",str3);
str4=fun1();
printf("str4:%s,fun函数调用结束,我的地址依然可以使用\n",str4);
str5=fun2();
printf("str5:%s,fun函数调用结束,函数结束不会自动释放\n",str5);
free(str5);
return 0;
}
char *fun0(char s[])
{
static char str3[]="我是fun函数申明的静态数组变量";
printf("str1:%s,fun函数可以直接调用\n",str1);
printf("str2:%s,fun函数通过参数将我的地址传进来\n",s);
return str3;
}
char *fun1()
{
char *str4="我是fun1函数的字符串常量";
return str4;
}
char *fun2()
{
int len;
char sTemp[]="这是一个临时数组,之后用于给mallc申请的地址传值,传递内容为:(我是fun函数通过mallic申请的数组)";
char *str5=NULL;
len=strlen(sTemp 63);
str5=(char *)malloc(sizeof(char)*len 1);
if(!str5)return NULL;
strcpy(str5,sTemp 63);
str5[len-2]=0;
return str5;
}
c语言中怎么接收一的数组,在写程序前不知道这数组的大小 , 并且后面有对这数组的操作?。。?/h2>接受数组的方法很多1维数组a[]你可以
func(int *a);
func(int a[]);
func(int a[10]);
这3中方法的是没区别的,
但是要在函数中获取一位数组的长度是不可能的 , 这是C/C的一个无法解决的问题 。你可以再定义一个形参限定一下对数组操作的大小,
比如func(int *a,int N);
这样的前提是你要知道你所操作数组必须长度小于N
【c语言函数接收数组 c语言怎么接收函数返回值】关于c语言函数接收数组和c语言怎么接收函数返回值的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读