黑马程序员技术交流社区
标题:
请教一下调用自定义函数求数组长度的问题
[打印本页]
作者:
丶信步沧桑
时间:
2015-10-17 21:52
标题:
请教一下调用自定义函数求数组长度的问题
本帖最后由 丶信步沧桑 于 2015-10-17 21:55 编辑
自定一个函数并调用,求数组长度.
#include <stdio.h>
void d(int a[]){
int len;
len=sizeof(a)/sizeof(int);
printf("len=%d\n",len);
}
int main(){
int b[]={1,2,3,4,5,6,7,8,9};
d(b);
return 0;
}
输出结果是2..
为什么,应该怎么写?
作者:
wx_iguzbFUf
时间:
2015-10-17 21:59
66666666666
作者:
jy00889669
时间:
2015-10-18 02:09
没看到数组,你真快
作者:
hulk374
时间:
2015-10-18 07:46
len=sizeof(a)/sizeof(int); sizeof(a)=8, sizeof(int)=4,这就是为什么是2了
作者:
shengping110
时间:
2015-10-19 15:53
大神 嫁给我吧
作者:
就是看看132
时间:
2015-10-29 22:36
同问,困扰我好久了
作者:
就是看看132
时间:
2015-11-7 22:57
看来还没解决呢//...
作者:
wh8817221
时间:
2015-11-7 23:06
因为你调用函数的时候实参传递过去的是这个函数地址,地址在内存中分配的空间是8个字节,所以sizeof(a)实际是地址的字节数,也就是8个字节,而sizeof(int)则是int类型在当前环境下占用的字节数,int类型在32位和64位都是4个字节,所以len=sizeof(a)/sizeof(int)=8/4=2;
作者:
chensc
时间:
2015-11-8 13:52
学习学习!
作者:
black747521
时间:
2015-11-8 14:09
当然是2,八楼正解
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2