首页 > 代码库 > [整理]函数的声明中的数组参数
[整理]函数的声明中的数组参数
在函数的声明的数组参数中,并为指明数组的长度。因为在C中,允许单个函数操纵任意长度的一维数组。这个特性不利的一面是函数没法知道该数组的长度。如果确实需要知道数组的长度,必须作为一个单独的参数传递给函数。
当数组名作为实参时,传递给函数的实际上是一个指向数组起始位置的指针。
/*开发环境:vs2010 window xp sp3*/#include <stdio.h>int main(void){ void array_len(int v[]); int v[]= { 70, 30, 40, 60, 10, 20, 50, 100, 80, 90 }; int len; array_len(v); len=sizeof(v)/sizeof(int);//40/4=10, sizeof(v)返回的是一维数组的元素总共所占的自己数10*4 printf("%d\n",len); //10 return 0;}void array_len(int v[]){ int len=sizeof(v)/sizeof(int);//4/4=1,sizeof(v)返回的是int *p 指针的长度,为4个字节 printf("%d\n",len); //1}
以上int改成long也是一样的结果。
需要注意的的是:
指针和long int 占据的是一样的,代表了这个平台的字宽,即机器的最大寻址宽度,32位就是4字节。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。