传递二维数组C语言
A. c语言 子程序 怎样传递二维数组参数
可以
void test( int a[][N], int row)
{
}
B. c语言二维数组传值
多维数组传递,n要为固定大小,void p( arr[][5] );
int arr[2][5];
p(arr);
来自下面网址
网页链接
C. C语言 二维数组传递参数
二维数组传递给函数的时候,有两种方式,一种是a[][6],一种是(*a)[6],这里的6是不能省略的,不然编译器不知道如何通过加多少来偏移这个指向数组的指针。
D. C语言 传递二维数组 急
既然是全局变量数组,那么就直接用就行了,不需要作为参数和返回。
全局变量申明时放在所有函数的之前,然后再ini()函数直接改,在display()中直接用就行。
E. C语言中如何将二维数组作为函数的参数传递
在C语言中可以用二维数组作为实参或者形参。
1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如:
voidf(intarray[3][10]);//正确
voidf(intarray[][10]);//正确
上面的两种二维数组形参表示都是正确的。
2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,如下面的定义是不合法的:
voidf(intarray[][]);//错误
因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:
voidf(intarray[3][]);//错误
3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致。比如定义如下函数:
voidf(intarray[][10]);
可以将如下数组传递给函数f。
inta[2][10]={1,2,3,4};
intb[4][10]={1};
F. c语言函数怎么传入一个二维数组
这样传:
函数声明:Func(变量类型 *[二维数组的列长] arry);
char arry[][4] ;
Func(arry);
G. C语言中 指针做函数参数传递二维数组
#include <stdio.h>
void fun(int (*p1)[3],int (*p2)[3]);
int main()
{
int p1[3][3]={{7,8,9},{4,5,6},{1,2,3}} ;
int p2[3][3] = {0};
int i = 0, j = 0;
fun(p1,p2);
for(i = 0;i < 3;i++){
for(j = 0;j < 3;j++){
printf("%d ",*(*(p2+i)+j));
}
printf(" ");
}
return 0;
}
void fun(int (*p1)[3],int (*p2)[3])
{
int i = 0,j = 0;
for(i = 0;i < 3;i++){
for(j = 0;j < 3;j++){
*(p2[j]+i) = *(p1[i]+j);
}
}
}
(7)传递二维数组C语言扩展阅读:
函数指针的声明方法为:
返回值类型 ( *指针变量名) ([形参列表]);
其中,“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = &func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。
网络-函数指针
H. C语言怎么以二维数组作为参数传递的问题
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
voidfun(intx[][3])
{
inti,j;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d",x[i][j]);
}
printf(" ");
}
}
intmain()
{
inta[2][3]={1,2,3,4,5,6};
fun(a);
return0;
}
定义形参的时候定义列的数目即可,其实就算你随便定义行和列的大小也可以运行,只要将数组地址传进去即可
I. C语言 二维数组的列 事先未知(要用户输入) 怎样把这个数组作为参数传递给函数
intfunc(int**a){
input(size);
malloc(a,size);
dosomething;
free(a);
}