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语言 使用指针遍历二维数组