C语言----一维数组和二位数组传参的最本质区别

🌞各位看官:欢迎来到(每日小知识)

🌟建议订阅专栏--> 每日小知识

🌟也欢迎关注小编--> 小峰同学

赶快上🚌跟着小编每天进步一点点,开心学习每一天。

😘如果觉得小编的文章对你有帮助,可以一键三连支持小编

😍你的支持才是小编最大的动力

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5bOw5ZCM5a2mJiYm,size_6,color_FFFFFF,t_70,g_se,x_16

👻本期重点:一维数组和二位数组传参的本质区别

一维数组的传参

写法有两种
法一/法二:

void mmm (int* str)
{ }
void mmm(int arr[])//这里的[]不能省略但是里面的数字可以省略
{ }

这里两种写法我们通过监视窗口可以看到本质上是一样的,传过去的都是数组首元素的地址。都是地址。

注意:在一般情况下, 数组名都表示首元素的地址, 但是有两个例外:

1,sizeof(arr)时这个为整个数组。

2,&arr的时候

 

上面两个图片可以看出 一维数组的两种定义方法,本质都是一样的。传过去的都是数组首元素的地址。


二维数组的传参

法一:

这里可以看到传过去的是也是地址不过是第一行的地址,

void mmm(int arr[][5], int row, int col)
{ }
//或者
void mmm(int arr[5][5], int row, int col)
{ } 
//行数可以省略但是列数不能省略。这是规定。
这种方法也是最简单的,也是最好理解的

法二:

void mmm(int (*a)[3], int row, int col)
{ } ;
//这里的int (*a)[3] 本质上是一个数组指针。
//也有书上称为行指针。

这里的数组名也就是首元素的地址,二维数组首元素地址就是第一行元素的地址。

所以二维数组传参本质上就和一位数组一样。一个是直接传,另一个是首元素的地址。

感谢各位看官,,如果觉得对你有所帮助请 一键三连  多谢!!!!!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小峰同学&&&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值