
正文
用c语言函数接受二维数组 c语言传递二维数组给一个函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
C语言中如何用gets();语句来接收一个二维数组
gets从标准输入设备读字符串函数。可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为‘\0’空字符,并由此来结束字符串。
因为gets函数是以换行符为分隔,所以用一层循环即可读取一个二维数组。对于每行字符串,使用sscanf读取每个数。
例如:
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);
}
相关问答
Q1: C语言函数中怎么返回一个二维数组
1、用c语言函数接受二维数组我们首先定义一个二级指针和一个行列变量[int ** array用c语言函数接受二维数组,row用c语言函数接受二维数组,column;]。
2、然后我们编写进入行和列用c语言函数接受二维数组的语句,代码如图所示。
3、接下来我们可以用一维数组打开一维一维数组。
4、接下来,我们使用[array [i] =(int *)malloc(sizeof(int)* column);]来为数组再次生成包含该数组的新数组。
5、然后我们可以为它赋值并输出[代码如图所示]。
6、运行程序后我们可以看到这种效果。
Q2: C语言中如何将二维数组作为函数的参数传递
在C语言中可以用二维数组作为实参或者形参。
1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如:
void f(int array[3][10]); //正确
void f(int array[][10]); //正确
上面的两种二维数组形参表示都是正确的。
2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,如下面的定义是不合法的:
void f(int array[][]); //错误
因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:
void f(int array[3][]); //错误
3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致。比如定义如下函数:
void f(int array[][10]);
可以将如下数组传递给函数f。
int a[2][10] = {1,2,3,4};
int b[4][10] = {1};
Q3: C语言如何利用指针接受二维数组实参
1、通过二级指针去访问二维数组需要先给二级指针分配等同于二维数组行数用c语言函数接受二维数组的一维数组指针用c语言函数接受二维数组,然后把二维数组的每行首地址赋值给对应位置的一维指针上。之后就可以通过二维指针直接访问用c语言函数接受二维数组了。
2、例程用c语言函数接受二维数组:
#include stdio.h//输入输出头文件。
#include stdlib.h//本程序需要用到malloc/free函数用c语言函数接受二维数组,引用该头文件。
int main()
{
int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12}; //定义二维数组a,并赋值从1-12.
int ** p = NULL;//定义二维指针。
int i, j;
p = (int **)malloc(sizeof(int *) *3);//要访问的数组有三行,所以申请三个一维指针变量。
for(i = 0; i 3; i ++)
{
p[i] = a[i];//将二维数组行地址赋值到对应的一维指针上。
}
for(i = 0; i 3; i ++)
{
for(j = 0; j 4; j ++)
printf("%d ", p[i][j]); //用指针输出元素。p[i][j]这里也可以写作*(*(p+i) + j)。
printf("\n"); //每行输出后加一个换行
}
free(p);//释放申请的内存。
return 0;
}
Q4: c语言函数怎么传入一个二维数组
这样传:
函数声明:Func(变量类型 *[二维数组的列长] arry);
char arry[][4] ;
Func(arry);
用c语言函数接受二维数组的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言传递二维数组给一个函数、用c语言函数接受二维数组的信息别忘了在本站进行查找喔。






