C语言 java 获取一维数组长度
C语言中要获取以为数组唱得好有点难度的。因为数组每元素的类型相同,每个元素占用的字节数都一样。这样就可以通过sizeof运算符,先获取整个数组占用的字节数,然后再除以每个数组元素占用的字节数就可以计算出数组的长度
#include<stdio.h>
int length(int arr[]);
//通过带参宏获取一维数组长度
#define GET_ARRAY_LENGTH(array,len){len = (sizeof(array) / sizeof(array[0]));}
void main()
{
int array[]={1,2,3,4,5,6};
// 直接计算数组长度
printf("数组长度为:%d
",sizeof(array)/sizeof(int));
printf("数组长度为:%d
",length(array));
int len;
GET_ARRAY_LENGTH(array,len);//启用宏把数组长度放到变量len中
printf("数组长度为:%d
",len);
int array2[][]={}
}
//求数组的长度
int length(int arr[])//这个方法行不通的
{
////计算占用内存大小
//sizeof(array)
//
////计算数组元素个数
//sizeof(array) / sizeof(array[0])
return sizeof(arr)/sizeof(int);//结果永远为1
//arr是函数参数,到了本函数中,arr只是一个指针
//(地址,系统在本函数运行时,是不知道a所表示的地址有多大的数据存储空间,
//这里只是告诉函数:一个数据存储空间首地址),
//所以,sizoef(a)的结果是指针变量a占内存的大小,
//一般在64位机上是4个字节。
//a[0]是int类型,sizeof(a[0])也是4个字节,所以,结果永远是1。
}结果:
数组长度为:6 数组长度为:1 数组长度为:6
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇: C语言 使用指针遍历二维数组
