编程常识13:数组索引数组下标为什么要从0开始

2021-01-07 18:14:14 字数 3056 阅读 8144

1楼:追忆小土豆

为了更好理解,我们举个例子:

1、数组在内存中申请是,所申请的内存是一段连续的内存地址;

数组的小标为什么要从0开始?

2楼:匿名用户

这是c和c++规定,vb默认也是从0开始。这是因为在使用数组元素,如a[i]时,是需要计算该元素在内存中的地址,为数组的起始地址a,加上i个元素的偏移量,即a[i]的地址为a+i*元素类型的大小。当i=0(即下标为0)时,数组的最开始的元素所在地址,就是数组的起始地址。

即a[0]的地址,就是a这个数组名。

3楼:匿名用户

为了方便编程,也为了思路不被打乱。

4楼:匿名用户

这个问题的主要原因是因为c语言是符合了汇编语言的形式,当然也并不是所有的语言中的数组下标都是从0开始的,在汇编语言中通过基址变址方式寻址,通过内存偏移量来取得相应的数组中的数值,因为数组中第一个元素与数组的偏移量为0 因此,为了方便起见,下标采用从0开始

5楼:匿名用户

便于查找数组中的元素。

数组下标都是从1开始的,为什么说成是从0开始的呢?

6楼:仁昌居士

数组下标说成是从0开始的是因为如果从1开始编号,每次随机访问数组元素都多了一次减法运算,对于cpu来说,就是多了一次减法指令。数组作为非常基础的数据结构,通过下标访问数组元素又是其非常基础的编程操作,效率的优化就要尽可能的做到极致。从0开始,可以减少一次减法操作。

7楼:匿名用户

下标是指数组元素的索引号,vb默认是0,对于你的数组dim a as variant

a=array(1,2,3,4)

a(0) 指第一个元素,它的索引号是0,它的值是1

8楼:匿名用户

option base 指定下标。一般是0或者是1.

为什么数组下标要从0开始

9楼:匿名用户

一个数组的基地址是该数组的第一个元素地址,没有要求

说下标必须从零开始,他们可以从任何一个数开始,只要是连续的就可以,但是起始下标是零比较方便讨论,因此我们一般都让数组从下标零开始,除非有很好的理由不这么做。

10楼:匿名用户

好计算地址偏移,你要是懂c语言就比较明白了。

11楼:匿名用户

c语言的编译器说从数组从第0个开始,c语言就从第0个开始了。

12楼:

matlab中数组下标从1开始

为什么数组下标从0开始而不是从1开始?

13楼:匿名用户

数组是一段连续的空间,要求a[i]就是求它

的地址,然后找到它。如果从0开始,则a[i]的地址= 首地址 + i*每个数据所占的长度;如果从1开始,则a[i]的地址= 首地址 + (i-1)*每个数据所占的长度。

是不是前一种更好计算呢。

数组中的元素的索引,是数组下标还是数组的值?

14楼:匿名用户

数组的索引指的是数组的下标

1,数组的索引指的是当前数组元素在数组中的位置(从0开始)2,数组的值指的是数组当前元素所存储的 变量。

所以可以区分为 数组元素的值, 数组元素的址

15楼:六熠穰驰颖

intnum[5]=;

1的索引位置是0,

2是1,

3是2,

4是3,

5是4。

16楼:声业长孙永

数组中元素的索引指的是数组下标

17楼:麴淼徭梦云

数组中的元素的索引是数组下标

比如a[i]

i就是数组a的索引,索引从0开始,a[i]是数组a的值

18楼:覃宸都清芬

数组中。索引是下标!

数据结构中,是能通过该值,找到对应值的叫索引;

19楼:容和关靖易

数组中的元素的索引指的是数组的下标

因为数组名,在某种意义上就是一个指针,而下标则成了对当前“指针”的加权定位

易语言的数组下标是从1开始还是从0开始,之前学过别的编程语言,那的数组下标是从0开始的,但我看易语 5

20楼:匿名用户

1楼,看你就学过易语言吧!易语言数组下标从1开始的,其它语言如c,python,java等都是从0开始的!

c/c++中数组下标从0开始而非从1开始,为什么?

21楼:匿名用户

随着你遇到的问题种类越来越多,你就会发现下标从0开始能给程序在细节上带来的优化效果了。

比如,最基本的,确定数组a中第i个元素的地址,如果从0开始,则a[i]的地址= 首地址 + i*每个数据所占的长度;如果从1开始,则a[i]的地址= 首地址 + (i-1)*每个数据所占的长度,多了一个整数计算

22楼:紫金玄铁

方便访问数组成员。

从0开始的话,只需用数组名(也就是数组地址),加上下标,只需要很简单的计算,就可以内存中准确访问到元素。

像在pascal这样的语言中,数组下标是可由人去定的。如:

vararr: array[2..4] of integer; //数组下标从2开始,到4结束。

虽然pascal这样的数定,在逻辑上很方便人们去理解。但从编绎器角度来讲,就很麻烦了。这时,你要访问一个数组元素,就不得不知道数组的下界,还要经过转换才能得到元素的相对指针。

如果是在多维数组的应用中,就更显而易见了。

c语言在工程应用中应用广泛,就是因为他对硬件的支持效率高,

在早期硬件不是很高级的时候,将数组下标选为0,大大提高访问数组速度,而且还省去了不必要的寄存器占用。

为什么数组下标从0开始而不是从1开始

1楼 匿名用户 数组是一段连续的空间,要求a i 就是求它 的地址,然后找到它。如果从0开始,则a i 的地址 首地址 i 每个数据所占的长度 如果从1开始 则a i 的地址 首地址 i 1 每个数据所占的长度。 是不是前一种更好计算呢。 数组下标都是从1开始的,为什么说成是从0开始的呢? 2楼 仁...

有n个整数,把它们存放到一维数组中(下标从0开始),输出

1楼 include int main n i maxm maxn 题目中n最大20 这里比题目中稍微大一点 while scanf d n eof n 0 printf d d a maxn maxn return 0 用c语言编程 从键盘上输入10个整数存放到一维数组中 输出其中最大的数及其对应...

数组下标可以改变么?为什么,数组下标就是0。 这句话错吗? 为什么?

1楼 百度用户 c语言中,数组下标只能是整形常量或整形表达式 问题不明确 数组下标就是0。 这句话错吗? 为什么? 2楼 匿名用户 数组下标是整数。 对于任意的数组 a n 合法的下标范围是0 n 1 实际编程的时候, 可以使用的下标是任意整数,包括负值。 只不过使用超出范围的下标属于越界, 会带来...