Arrays 用C语言传递二维数组
我想通过向函数传递指针来显示2D数组的元素。我成功地完成了1D阵列Arrays 用C语言传递二维数组,arrays,pointers,Arrays,Pointers,我想通过向函数传递指针来显示2D数组的元素。我成功地完成了1D阵列 #include<stdio.h> void displaymat(int *a); int main() { int a[3]={0,1,2}; int t[3][3]={1,2,3,4,5,6,7,8,9}; displaymat(a); return 0; } void displaymat(int *a) { int i; for(i=0;i<3;i++) p
#include<stdio.h>
void displaymat(int *a);
int main()
{
int a[3]={0,1,2};
int t[3][3]={1,2,3,4,5,6,7,8,9};
displaymat(a);
return 0;
}
void displaymat(int *a)
{
int i;
for(i=0;i<3;i++)
printf("%d\n",a[i]);/*works for single dimensional array*/
}
#包括
void displaymat(int*a);
int main()
{
int a[3]={0,1,2};
int t[3][3]={1,2,3,4,5,6,7,8,9};
(一);
返回0;
}
void displaymat(int*a)
{
int i;
for(i=0;it
的类型为int**
,它是指向int指针数组的指针
a
的类型为int*
&t[0][0]
属于int*
类型
您应该能够调用displaymat(t[0])
,displaymat(t[1])
,和displaymat(t[2])
int t[3][3]={1,2,3,4,5,6,7,8,9};
是一个一维数组。t[1][2]的值取决于数据是按行主顺序还是按列主顺序存储。你确定这是你想要做的吗?@Icardor My bad,通过正确初始化2D数组,displaymat(t)似乎可以工作。int t[3][3]={1,2,3,4,5,6,7,8,9}到底是什么?那么为什么displaymat(t)会给我一个错误?