关于二维数组的函数传递
为什么这样不行
fun(int** num)
{
int b=num[1][2];
}
void main()
{
int a[4][4]={……};
fun(a);
}
关于二维数组的函数传递
答案:1 悬赏:40 手机版
解决时间 2021-07-25 21:19
- 提问者网友:焚苦与心
- 2021-07-24 22:51
最佳答案
- 五星知识达人网友:猎心人
- 2021-07-24 23:54
因为编译器在函数fun里不知道这个数组的第一维是多大,所以无法确认第二行从哪里开始.
你这样定义:
fun(int num[][4])
就可以了.
再问: 那如果就用int** num; 前面应该传递什么
再答: 如果用int **num;参数传递还是可以直接传数组名:fun(a); 但fun函数里就不能用数组的方式来访问了,必须用指针的方式。 int b=*(((int *)num)+1*4 +2);
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯