c语言两个数组传递给函数 c语言两个数组能相互赋值吗

C语言数组传递到另一个函数中void function1(){
void function2(int *a, int n); //函数声明
int a[2]={1,2};
function2(a,2); //调用函数
}
void function2(int *a, int n) //函数定义c语言两个数组传递给函数,这样就可以c语言两个数组传递给函数了
{
int c,i;
for(i=0;in;i){
c=a[i];
printf("%d ",c);
}
}
转:C语言中如何将二维数组作为函数的参数传递下面例子c语言两个数组传递给函数,作为 指针传递和行指针传递 。
#include stdio.h
void fun(int *p1,int (*p2)[3], int row, int col){
int i,j;
for (i=0;i3;i){
for (j=0;j4;j) {
printf("%d ",p1[i*col j]);
p2[j][i]=p1[i*col j];
};
printf("\n");
};
}
int main(){
int a[3][4],b[4][3];
int i,j;
for (i=0;i3;i)for (j=0;j4;j) a[i][j]=(i 1)*10 j;
fun(a[0][0],b[0], 3,4);
printf("\n");
for (i=0;i4;i){
for (j=0;j3;j) printf("%d ",b[i][j]);
printf("\n");}
return 0;
}
或这样c语言两个数组传递给函数:
void fun(int p1[3][4],int p2[4][3]){
int i,j;
for (i=0;i3;i){
for (j=0;j4;j) {
printf("%d ",p1[i][j]);
p2[j][i]=p1[i][j];
};
printf("\n");
};
}
调用c语言两个数组传递给函数: fun(a,b); 即可 。
c语言的数组怎么传递到函数里面例:
#includestdio.h
void fact(int *p, int n)
{
for(i = 0; in;i)
{
printf("%d ", pi);
}
printf("\n");
p[3] = 6;
}
int main()
{
int a[5] = {1, 2, 3, 4, 5};
fact(a, 5);
for(i = 0; i5;i)
{
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
如何将二位数组作为参数传入函数在C语言中可以用二维数组作为实参或者形参 。
1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小,也可以省略第1维的维数如:
1
2
void f(int array[3][10]); //正确
void f(int array[][10]);//正确
上面的两种二维数组形参表示都是正确的 。
2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略,如下面的定义是不合法的:
1
void f(int array[][]); //错误
因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:
1
void f(int array[3][]);//错误
3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致 。比如定义如下函数:
1
void f(int array[][10]);
可以将如下数组传递给函数f 。
1
2
int a[2][10] = {1,2,3,4};
int b[4][10] = {1};
【c语言两个数组传递给函数 c语言两个数组能相互赋值吗】c语言两个数组传递给函数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于c语言两个数组能相互赋值吗、c语言两个数组传递给函数的信息别忘了在本站进行查找喔 。

    推荐阅读