作业帮 > 综合 > 作业

关于二维数组的函数传递

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/08 09:06:58
关于二维数组的函数传递
为什么这样不行
fun(int** num)
{
int b=num[1][2];
}
void main()
{
int a[4][4]={……};
fun(a);
}
因为编译器在函数fun里不知道这个数组的第一维是多大,所以无法确认第二行从哪里开始.
你这样定义:
fun(int num[][4])
就可以了.
再问: 那如果就用int** num; 前面应该传递什么
再答: 如果用int **num;参数传递还是可以直接传数组名:fun(a); 但fun函数里就不能用数组的方式来访问了,必须用指针的方式。 int b=*(((int *)num)+1*4 +2);