您的位置:首页 > 编程语言 > C语言/C++

C语言 java 获取一维数组长度

2017-09-23 21:16 316 查看
#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\n",sizeof(array)/sizeof(int));
printf("数组长度为:%d\n",length(array));
int len;
GET_ARRAY_LENGTH(array,len);//启用宏
printf("数组长度为:%d\n",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

java中获取数组长度真的是太容易了。直接使用数组名.length就可以直接获取一维数组的长度

package Ctojava;

public class ArrayLength
{
public static void main(String[] args)
{
int array[]={1,2,3,4,5,6,7};
boolean flag=false;
for(int i=0;i<array.length;i++)
{
if(flag)
System.out.print(",");
flag=true;
System.out.print(array[i]);
}
}
}
结果:
1,2,3,4,5,6,7
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: