数组的长度一定是固定的吗?Java数组的长度到底能有多大

本文目录
数组的长度一定是固定的吗
是的,数组在定义的时候就需要固定长度,长度是不可变的。不过二维数组有点特殊 如:
arr【】【】 定义的时候后面一个方框可以空着,因为后一个框里装的是一维数组的个数,同一个二维数组中的一位数组存在不等长的情况,所以后一个可以不定长。
Java数组的长度到底能有多大
其实没有这种说法, 数组的长度是 int类型 取值是 20多亿吧
而真正的长度取决于你的JVM大小
你不可能创建20亿长度的数组
因为这里已经占用好几个G的内存了,你电脑也没有这么大的内存
有一个字符数组,每一个元素都是字符串,如何获得每一个字符串的长度
取得的字符数组长度与使用的获取长度的方法有关,在C/C++中常用的获取字符串长度或者字符串数组长度的函数有sizeof()、strlen()。
sizeof()求出的是数组的总长度,而不是数组中存放的有意义的数据的个数。比如定义一个int型的数组:
int a = {1, 2, 3, 4, 5};
只初始化了五个元素,但是 sizeof(a)/sizeof(a) 求出的是 10,而不是 5。换句话说,无法通过 sizeof(a)/sizeof(a) 求出数组中有多少个有意义的数据。
用 sizeof 可以获得数据类型或变量在内存中所占的字节数。同样,用 sizeof 也可以获得整个数组在内存中所占的字节数。
因为数组中每个元素的类型都是一样的,在内存中所占的字节数都是相同的,所以总的字节数除以一个元素所占的字节数就是数组的长度。举例如下:
# include 《stdio.h》
int main(void){
int a = {0};
printf(“sizeof(a) = %d\n“, sizeof(a));
return 0;
}
输出结果是:
sizeof(a) = 40
数组 a 是 int 型的,每个元素占 4 字节,所以长度为 10 的数组在内存中所占的字节数就是 40。
扩展资料:
strlen() 与 sizeof() 的区别
1、strlen(char*)
函数求是字符串的实际长度,它可以用来获取动态实际字符数组的长度,是从开始到遇到第一个“\0”,如果只是定义没有赋予初始值,这个结果是不确定的,它会从数组的首地址开始一直找下去,直到遇到“\0”停止查找。
2、sizeof()
求所占总空间的字节数,静态的,跟初始状态字符数组的大小有关系,大小等于初始时字符数组的大小或者等于初始时字符数组的大小+1 。
在C++中,如果定义的是字符串数组的话,那么如果想获取数组的长度,只能用sizeof(数组名),而不能用strlen(str)。
c语言中如何求数组长度
1、c语言中,定义数组后可以用sizeof命令获得数组的长度(可容纳元素个数)。
例如:
int length;
length=sizeof(data)/sizeof(data); //数组占内存总空间,除以单个元素占内存空间大小
printf(“length of data=%d“, length ); //输出length of data=4
2、但是,通过传递数组名参数到子函数中,以获得数组长度是不可行的。
例如:
int length;
length=sizeof(a)/sizeof(a); //这样是错误的,得到的结果永远是1
return length;
}
因为,a是函数参数,到了本函数中,a只是一个指针(地址,系统在本函数运行时,是不知道a所表示的地址有多大的数据存储空间,这里只是告诉函数:一个数据存储空间首地址),所以,sizoef(a)的结果是指针变量a占内存的大小,一般在32位机上是4个字节。a是int类型,sizeof(a)也是4个字节,所以,结果永远是1。
3、因此,获得数组长度,只能在数组定义所在的代码区中,采用以上方法,才可以达到效果。

更多文章:
turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)
2026年10月11日 10:00
金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)
2026年10月11日 09:10
repercussions(都是余波,repercussions和aftermath有什么区别啊)
2026年10月11日 09:00
dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)
2026年10月11日 08:50
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40



