C语言中对数组名的深刻理解及其数组传参

一。数组名一般情况下表示首元素的地址,但有两个列外:

1.sizeof(数组名),也就是数组名单独放在sizeof 内部,这里的数组名表示整个数组,计算的是整个数组的大小,单位是字节;

2.&数组名;也就是&后面放数组名,列如&arr;这里的数组名表示整个数组,取出的是整个数组的地址;

上述可以看出sizeof(arr)的大小为16个字节,证明了计算的是整个数组的大小;

而&arr+1跳过了16个字节的地址,证明&数组名取出的是整个数组的地址。

而对于二维数组而言,数组名是首元素地址,是它的第一行,列如arr[3][4],单独的arr代表的是第一行的地址,arr+1就是跳过第一行,表示第二行的地址;

其单独放在sizeof内部也是表示整个数组;&数组名也表示整个数组的地址。

二.数组传参

下面我们看一个列子:

上述是一维数组传参的几种正确列子,数组传参时传的是首元素地址;所以我们用上述几种方式接收;

而对于二维数组来说,数组传参时,函数的设计只能省略第一维,也就是只能省略行;

对于二维数组传参,传的是首元素地址,其实就是第一行的地址,第一行是一个一维数组,所以要用一个数组指针来接收。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值