c语言 数组的下标应该是从0还是从1开始?
数组的下标应该是从0还是从1开始?
在其他一些语言中,情况可能会有所不同。例如,在basic语言中,数组a[Max]的元素从a[1]到a[Max],而在Pascal语言中,这两种方法都是可行的。
注意:a[Max]是有效地址,但地址中的值不是数组a的元素。
这种差异有时会导致混淆,因为当您说“数组中的第一个元素”时,实际上是指“数组中的下标是”。这里的第一个意思与最后一个相反。
由于指针和数组几乎相同,您可以定义一个指针,以便它可以像数组一样引用另一个数组中的所有元素,但前者的下标从1开始:
/*Don“tdotis
*/
inta0[Max],
int*A1=a0-1/*&a0[-1)*/
现在,a0[0]和A1[1]是相同的,而a0[Max-1]和A1[Max]是相同的。但是,在实际编程中不应该这样做,原因有以下两个:第二,这种方式偏离了C语言的传统风格。
为什么数组的下标要从0开始?
你好,我是[你,你,不要逃避],我很高兴为你回答。因为在汇编和机械代码中,我们都从0开始计数和索引,二进制计算也很方便。下标理解为偏移量,即对数组的访问理解为基址(第一个元素的地址)的偏移量;当偏移量为0时,表示对第一个元素的访问。例如:1。如果在内存中应用了一个数组,则应用的内存是一个连续的内存地址。如果int[]a=New int[3];如果应用int数据类型的数组,则a表示变量,数组长度为:[3];3。数组应用的内存地址是连续的(假设应用的第一个内存地址是1008,第二个是1009,第三个是1010);,但我们只知道:1。变量:A,它只获取第一个内存地址1008;2。它的数组空间是3;4。A[0]-获取的内存地址A:1008 0=1008(指向第一个内存地址);A[1]-获取的内存地址:1008 1=1009(指向第二个内存地址);A[2]-获取的内存地址:1008 2=1010(指向第三个内存地址);更专业的科学知识,欢迎关注我。如果你喜欢我的回答,也请给我表扬或转发,你的鼓励是支持我写下来的动力,谢谢。
数组下标为什么从0开始而不是从1开始?
您可以将数组变量视为指针,将数组下标视为地址偏移量。
因为数组第一个元素的地址偏移量必须为0,所以数组下标从0开始
下标是指数组元素的索引号,VB默认为0,对于您的数组
dim a as variant
a=数组(1,2,3,4)
a(0)是指第一个元素,其索引号为0,它的值是1
excel数组的默认值是从0开始的事实上,数组通常是我们自己定义的。我们也可以从1,2,3中定制它们
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。