二维数组做为形参问题

二维数组不能做为形参是 char* 的函数调用。或者说也可调用但是往往容易出错,不能达到我们的需求。

还是需要从内存考虑,当二维数组做为char* 传递时候,其完全退化成地址值,而并不知道二维数据的存储格式。

例如 array[x][[x],二维数组的高阶项不能为空及array[x][ ]这样定义是不正确的,因为内存无法完成分配。


二维数组做为形参问题_第1张图片
指针数组做为形参

可以考虑用指针数组做为形参,指针数组本质是数组,数组里的元素是指针,指针指向我们存储数据的地址。

总之在编程中需要深刻的理解地址,这样会避免很多意外错误。


二维数组做为形参问题_第2张图片
二维数组的典型错误

在进行上述操作后,二维数组的存储结构特性已经消失,在传递过程中仅仅退化成一个地址,而在实现函数中又用到了二维数据的结构特性所以会导致段错误,因为在实现函数中,不知道二维数组是如何存储的。

你可能感兴趣的:(二维数组做为形参问题)