
正文
c语言数组一定要从0开始吗,c语言数组一定要从0开始吗为什么
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
为什么在C语言定义数组时下标必须从零开始呢?
C语言的下标与其地址是相对应的,而第一个下标刚好是数组所在的地址,所以不用加偏移(既加0),所以C语言的下标就定为从0开始(C语言的发明者认为这样比较符合逻辑).这个特性是为了方便编译器设计者而设定的。
数组下标说成是从0开始的是因为如果从1开始编号,每次随机访问数组元素都多了一次减法运算,对于cpu来说,就是多了一次减法指令。
。c语言中数组的存储是有先后顺序的,在内存中按照这个先后顺序连续存放在一起,因为每个元素都是一个存放字符串的一组固定数组,导致其元素的下标下限都是0。
因为数字下标从零开始,如定义数组:int a[4];其长度为4,其下标为0,1,2,3。
相关问答
Q1: 为什么C语言中的的数组是从0开始的
1、数组一般都是从零开始,但可以设定上下界。数组可以用相同名字引用一系列变量,并用数字来识别它们。在许多场合,可用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理各种情况。
2、其实从0开始是有一定道理的。数组是一段连续的空间,要求a[i]就是求它的地址,然后找到它。
3、数组下标说成是从0开始的是因为如果从1开始编号,每次随机访问数组元素都多了一次减法运算,对于cpu来说,就是多了一次减法指令。
4、C语言在工程应用中应用广泛,就是因为他对硬件的支持效率高,在早期硬件不是很高级的时候,将数组下标选为0,大大提高访问数组速度,而且还省去了不必要的寄存器占用。
Q2: C语言数组的下标总是从0开始吗?
数组下标一般是从0开始的。 如果一个数组有三个元素,应该是a[0]、a[1]、a[2],如果a.Length=3,则会超出了数组的界限,因为数组中根本不存在下标为3的元素。
所有数组下标都是以0开始的,即第一个数是a[0][0]。我们先定a[3][4]中“3”所对的为第一个下标,“4”为第二个。
因为C语言规定数组的下标都是从0开始的,所以其下限就是为0。
数组第一个下标定义是0,举例:int a[3],第一个元素就是a[0]。int a[3][3],第一个元素就是a[0][0]。int a[3][3][3]的第一个元素则是a[0][0][0],第一个元素的表达就是上面这样,依次类推。
是“0”吧。C语言中数组的下标是从0开始的。
不论在任何编程语言,如果没有定义起始下标默认都是从0开始 在C语言中不能自定义起始下标,要想下标与数组元素的序号一一对应只能舍弃第一个存储空间。
Q3: 计算机数组为什么从0开始而不是从1开始?
1、并非所有的编程语言的都是从0开始的,VBA就有从1开始的情况,Python还有负数下标。物理内存的地址是从0开始 可以把下标看做是偏移量,数组的访问可以看是对指定偏移地址的数据访问。
2、数组是一段连续的空间,要求a[i]就是求它的地址,然后找到它。如果从0开始,则a[i]的地址= 首地址 + i*每个数据所占的长度;如果从1开始,则a[i]的地址= 首地址 + (i-1)*每个数据所占的长度。
3、Arr: Array[.4] of Integer; //数组下标从2开始,到4结束。虽然pascal这样的数定,在逻辑上很方便人们去理解。但从编绎器角度来讲,就很麻烦了。
4、你可以把数组变量看成指针,数组下标看成地址的偏移量。
5、这个是数学问题不是计算机问题:所有数字系统都是从0开始的,出了古代文明的一些数字系统。数字系统:我们现在使用的数字系统是阿拉伯数字系统;其中有两个重要的概念,1:数字的位置和数字的大小同样重要,2:0的引入。
6、为什么下标从0开始而不是从1开始,主要有以下几个原因: 简化寻址计算:如果下标从0开始,计算机在访问数组元素时只需要使用一个简单的内存地址加上下标即可。
Q4: 索引超出了数组界限是什么意思
1、索引超出了数组界限是指在通过索引获取数组内的值时,索引超出了数组的总长度。例如:int[] Array = {1,2,3,4,5,6,7,8,9,10};在这个int型数组Array中有10个元素,它的总长度是10,索引是0-9。
2、您好,这样的:就是你要获取的数组元素的位置 超过了数组元素的个数。找不到这个位置下的元素,就报这样的错了。
3、索引超出了数组界限是指在通过索引获取数组内的值时,索引超出了数组的总长度。例如:int[]Array={1,2,3,4,5,6,7,8,9,10};在这个int型数组Array中有10个元素,它的总长度是10,索引是0-9。
4、数组下标一般是从0开始的。 如果一个数组有三个元素,应该是a[0]、a[1]、a[2],如果a.Length=3,则会超出了数组的界限,因为数组中根本不存在下标为3的元素。
5、索引超出数组界限,一个是判断一下循环语句中的循环上限是否出错,再一个就是直接更改数组大小。
6、就是你要获取的数组元素的位置 超过了数组元素的个数。
Q5: C语言一维数组第一个元素下标一定是什么大神们帮帮忙
c语言一维数组的定义,假如有n个数,则下标是从0到n-1,这是外国人的习惯,c语言原子外国。
问题一:c语言中数组的下标可以是字符吗?代表什么意思? 下标是一个数字,一般都是这样的。char 在C语言中,也算一个数吧,比如,你会发现字符A和其对应的ASCII码98(?),所以这样子用是可以的。
下标可以是变量 也可以是常量。直接说a[0],a[1],a[2],a[3]这样的下标就是常量。
a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。对于VB的数组,表示数组元素时应注意:下标必须为一段连续的整数,其最小值成为下界,其最大值成为上界,不加说明时下界值默认为1。
当访问数组元素时,就需要使用下标,格式为 array_name[index]其中[index]就是数组的下标,含义为数组array_name的第index元素。在C语言中,index是从0开始计数的,所以对于NUM个元素的数组,合法下标范围为0~NUM-1。
关于c语言数组一定要从0开始吗和c语言数组一定要从0开始吗为什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






