中易网

双重数组做参数

答案:3  悬赏:70  
解决时间 2021-01-21 09:10
双重数组做参数
最佳答案
请问这是一个单独的值还是一个数组呢?

如果是数组,
就直接把a作为参数就可以了
调用的时候就是fuc(a);

在fuc(void* p)这个函数里面
首先要把a强制转为他之前的类型,如果声明的时候是int a[2][3]; 就需要在fuc函数中这样转换:
int *b = (int *)p
如果要重新找到它里面所对应的数据,就只能按顺序一个一个找,*(b+i),而他之前作为2维数组的信息在传递的时候就丢失了

如果是单独的一个数,也是直接传递,传递过去就直接*b就找到这个数了
追问:是个char a[2][3] 在fuc中如何获取 a[0]和a[1] 这2个数组?
fuc(void*p)
char* b =(char*)p?只能获取到a[0]的a[1]的怎么获取呢?
追答:对,如果是char a[2][3],就必须要
char *b = (char *)p;
这样获得。
后面你说的不太准确,由于a是二维数组,a[1]应该是a[1][0],那么就只能*(b + 3)这样拿到a[1][0]的值了。
全部回答
主调函数中
void *p = a[0][0];
int n = 6; // 2 X 3
fun(p,n); // 调用语句
函数原型: fun(void *p, int n); // 应该有返回值
追问:在fun(void* p)中如何get它呢
追答:数组a的类型是你声明并定义的,如何使用该数组元素当然也是已知的啦。
主调函数中的 *P初始化有问题,应该是
void *p = &a[0][0];
抱歉。
追问:是个char a[2][3] 在fuc中如何获取 a[0]和a[1] 这2个数组?
fuc(void*p)
char* b =(char*)p?只能获取到a[0]的a[1]的怎么获取呢?
要将二维数组a[R][C] 传给一个函数 fuc,fuc函数的原型可以有多种形式:
T1 fun(T2 x[][C], int r); // T1,T2为数据类型标识符,r用来接收数组行数——(1)
T1 fun(T2 (*x)[C], int r); // T1,T2为数据类型标识符,r用来接收数组行数——(2)
T1 fun(T2 *x, int r, int c); // T1,T2为数据类型标识符,r和c用来接收数组行数和列数——(3)
对于(1)和(2)两种形式的函数原型,调用函数的形式为:
fun(a)// a为列数为C的二维数组名
函数体中用双下标变量形式访问数组元素,比如x[i][j]。
对于(3)形式的函数原型,调用函数的形式为:
fun(&a[0][0])或者 fun(a[0])// a为列数为C的二维数组名
函数体中通过将一维数组映射到二维数组的方法访问数组元素,这时,第i行第j列的元素表示为:
*(x+i*c+j)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
施工企业会计如何跳槽做其他行业会计
求助,我顺丰快递从沈阳到无锡
怎样成为优秀的服装设计师?
四维彩超可以检查出多指胎儿吗
实木门,用原木好,还是指接板好
去保险公司做内勤怎么样
厨房台面用什么材料比较好?
时尚酒架的价格哪位了解?
阴虚内热、津少口渴:麦冬、石斛各9g,玉竹、
里德学院的录取状况
求问客厅地毯怎么摆放
狗狗发情了人工受精了,怎么过了几天又发情
重庆恒大城游泳馆是怎么收费的?
义乌哪里有批发婚纱的地方?婚纱 结婚礼服 结
安琪宝贝早教中心地址有知道的么?有点事想过
推荐资讯
管理能力指的是什么呢?
求赖特的流水别墅平立面图,cad的就好了,有
照样子,写词语。 银灰(事物+颜色)
家长该不该对孩子物质奖励
求一个已经吸好色板的sai····求大触的www
上海违章罚款没交怎么办啊
用清爽、吟诵、唱和、瀑布、陡峭、挺拔、写一
如果把发电机改成电动机它的功率与扭力会变多
张家市金鳄鱼外墙涂装公司地址在哪里?哪家好
长沙宏陶瓷砖哪里有卖?请大家给我点参考价格
航嘉冷静王350w怎么样?有谁清楚?
方城昌盛家俱商场地址在哪,我要去那里办事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?