妙用sizeof获得数组长度

总所周知,sizeof关键字返回一个类型的长度。于是,一些聪明的人就想出了用sizeof(array) / sizeof(array[0])来获取array数组的长度。这个表达式十分巧妙。第一个sizeof(array)返回array的长度,第二个sizeof(array[0])返回array每个元素的类型的长度。将数组的总长除以其中每个元素的长度,就可以得出该数组的长度。

写个小程序试一下,可行。
那么,指针数组行不行呢?

咦,这次怎么失败了?用printf看一下。

int类型的array[0]占4个字节,int *类型的array为什么也占4个字节呢?如果把数组的长度改一下,会不会变化呢?


原来int *的长度与int一样,都是4字节。所以,这种方法只适用与普通数组。在对待指针数组时,我们不能用这个方法来取得数组长度。

转载于:https://www.cnblogs.com/KM-Y/p/sizeofandarray.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值