关于数组 的各种

问题:自定义函数计算数组长度,每次都是8?

int arrayLength(int arr[]) {      return sizeof(arr) ;  }  

或者函数int arrayLength(int * arr) {      return sizeof(arr) ;  }  

解决:在c中,数组在作为参数的时候就退化为指针,对一个地址来取大小呢,如果是32位系统的话即为4,如果是64位系统的话为8,所以呢,在函数中sizeof获取的是指针的长度而不是数组的长度。

目前看,不要在自定义函数中使用sizeof。

或者可以 #define length sizeof(arr) 

函数中需要使用到sizeof(arr)的地方,用宏定义变量代替,这样就不用传递数组了,测试计算长度是准确的,不知道有没有未知的问题。

转载:自定义函数中使用sizeof计算数组长度为啥就不正确了?自定义函数中使用sizeof计算数组长度为啥就不正确了?_sizeof数组不正确_一桶凡士林的博客-CSDN博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值