有个函数void f(int mat,int m,int n) 如何将一个数组,比如说是int a3正确的传进去?如果直接使用f((int)a,3,4)来调用的话,函数里面直接写mati的话会报错。请问应该如何操作?
如果f要接收一个二维数组做参数,而且需要数组的长度信息的话,那么原型应该是这样:
void f(int **array, int m, int n);
调用的时候:
int array3;
f(array, 3, 4);
这个问题的关键大概在于,int array3这样定义的变量确实是数组类型(int3),而且这个是有长度信息的(用sizeof是可以取到正确的长度的).
但是当数组作为函数参数的时候,将会退化为一个纯粹的指针,无法区分是否是数组,也无法携带长度信息。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。