C语⾔三种传递⼆维数组的⽅法
⽅法⼀:传递时指指定列数
C语⾔⾥⾯对⼆维数组的存储是按照⼀维数组来处理的,⼆维数组按照⾏展开的⽅式按顺序存储,
所以在利⽤⼆维数组作为参数传递时,必须指定⼆维数组的列数,否则函数⽆法勾画出⼆维数组的组织形式。只有有了列长度,通过下标a[i][j]时才能得到正确的下标地址,即:
void foo(int a[][3],int m,int n)
{
}
⽅法⼆:把参数声明为⼀个指向数组的指针
#include<stdio.h>
void foo(int(*a)[3],int m,int n){
int i =1;
int j =1;
printf("a[%d][%d]=%d\n", i, j, a[i][j]);
}
int main(){
int a[2][3]={
{1,2,3},
{4,5,6}
};
foo(a,2,3);
c语言二维数组表示方法}
注意:此时还是需要指定⼆维数组的列长度,不然函数内部还是⽆法使⽤⼆维下标去访问数组
⽅法三:把参数声明为指向指针的指针
#include<stdio.h>
void foo(int**a,int m,int n){
int i =1;
int j =1;
printf("a[%d][%d]=%d\n", i, j, a[i][j]);
}
int main(){
int a[2][3]={
{1,2,3},
{4,5,6}
};
int* p[3];
p[0]= a[0];
p[1]= a[1];
p[2]= a[2];
foo(p,2,3);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论