独闷闷网

 找回密码
 立即注册
搜索
查看: 2001|回复: 0
打印 上一主题 下一主题
收起左侧

[原创] 在函数中,怎么样能通过一个指针形参把二维数组传递进去?已解答。

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-22 12:09:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 jianhong_wu 于 2015-8-29 14:05 编辑

问:
在函数中,怎么样能通过一个指针形参把二维数组传递进去?

★坚鸿-深圳:
请看以下范例,注意:二维数组与指针匹配,必须要列数一致,比如上述例子unsigned char (*p)[5]的5与数组列数对应的5一致,当然我测试了一下,在keil的C51平台即使不匹配也能编译通过,但是在IAR针对stm8单片机的编译器,如果不匹配则编译不能通过。它不像一维数组和指针,不需要限定列数。


  1. #include "REG52.H"

  2. void test(unsigned char (*p)[5]);

  3. unsigned char ucErWeiBuffer[4][5];//定义一个二维数组


  4. void main() //主程序
  5. {
  6. test(ucErWeiBuffer) ; //通过二维指针调用二维数组
  7. while(1)
  8. {
  9. ;
  10. }

  11. }

  12. void test(unsigned char (*p)[5]) //注意,此处的二维指针的5必须跟数组的列数5一致
  13. {
  14. p[0][1]=2;
  15. p[0][2]=3;
  16. p[3][4]=5;
  17. }

复制代码

乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-19 10:49 , Processed in 0.155456 second(s), 17 queries .

快速回复 返回顶部 返回列表