66问答网
所有问题
当前搜索:
数组为什么从0开始
...器还是高级语言中比如
数组
角标
为什么
都
从0开始
而不是1,是历史遗留...
答:
并不是所有的语言都是基于
0
的.在大多数开发环境中,Collection对象的元素就是基于1的.一些非强制类型的编程语言的
数组
也是基于1的.基于0的好处在于,对基址偏移的计算相对简单得多,比如对n个连续存放的的4字节数据,只要知道第一个数据的
开始
位置是x,那么,要取出第m个,就从x+m*4那里读出4个字节就可...
如何理解
数组
元素下标
从0开始
?
答:
综上所述,
数组元素下标从0开始是出于计算机硬件性能优化、数学和逻辑便利性,以及编程习惯的一致性考虑
。这种做法已经成为计算机科学中的标准实践,并被广泛采用。
数组
下标都是从1开始的,
为什么
说成是
从0开始
的呢?
答:
数组下标说成是从0开始的是因为如果从1开始编号,
每次随机访问数组元素都多了一次减法运算,对于cpu来说,就是多了一次减法指令
。数组作为非常基础的数据结构,通过下标访问数组元素又是其非常基础的编程操作,效率的优化就要尽可能的做到极致。从0开始,可以减少一次减法操作。
存储单元
为什么从0开始
编址?c语言
数组
下标为什么要从0开始?
答:
以此类推 所以a[n]元素的地址,实际上就是a的地址,加上n个元素的所占空间大小 a[n]地址 = a地址 + sizeof(int) * n;综上所述,
数组
的下表可以理解为距离首地址的偏移量。所以第一个元素距离首地址的偏移量为0;因为第一个元素的地址,就是首地址。
为什么
二维
数组
下标
从0开始
答:
8,6}}表示初始化
数组
。最外围{}中的每一个{}表示依次对每一行赋值,不够的补0},所以{{3,4},{2,8,6}}表示对数组的前两行赋值,每行也是依次赋值,不足补0;int a[3][4]={{3,4},{2,8,6}} 最终数组存储情况:数组的下标是
从0开始
的,如下图所示。所以a[2][0]的值为0 ...
为什么数组
下标
从0开始
而不是从1开始?
答:
数组
是一段连续的空间,要求a[i]就是求它的地址,然后找到它。如果
从0开始
,则a[i]的地址= 首地址 + i*每个数据所占的长度;如果从1开始,则a[i]的地址= 首地址 + (i-1)*每个数据所占的长度。是不是前一种更好计算呢。
为什么数组
下标
从0 开始
而不是从 1 开始?
答:
一、并非所有的编程语言的都是
从0开始
的,VBA就有从1开始的情况,Python还有负数下标。二、物理内存的地址是从0开始 三、可以把下标看做是偏移量,
数组
的访问可以看是对指定偏移地址的数据访问。当下标为0,即偏移量为0,指向数组的首地址内存。
为什么数组
的下标要
从0开始
答:
1008 + 1 = 1009 (指向第二个内存地址);a[2]——把a拿到的内存地址:1008 + 2 = 1010 (指向第三个内存地址);所以:数据下标从 [
0
]
开始
的意义也在于此!(当然,这是理解版的)。(备注):如果你写a[3],它就报错了,越界错误,因为你只申请了3个内存空间。
c/c++中
数组
下标
从0开始
而非从1开始,
为什么
?
答:
从0开始
的话,只需用
数组
名(也就是数组地址),加上下标,只需要很简单的计算,就可以内存中准确访问到元素。--- 像在pascal这样的语言中,数组下标是可由人去定的。如:var Arr: Array[2..4] of Integer; //数组下标从2开始,到4结束。虽然pascal这样的数定,在逻辑上很方便人们去理解。但...
有n个元素一堆
数组
,其下标是从数字
什么开始
,从数字什么结束?
答:
下标是从数字
0开始
,从数字n-1结束。
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
为什么数组从0开始计数
数组索引为什么从0开始
一维数组为什么从0开始执行
为什么c语言数组从零开始
数组元素从0开始
java中this关键字
int整型
数组从0开始吗
数组一定要从0开始吗