简单一句话: 就是为了方便 计算出每个元素的具体内存地址
因为数组变量 实际上在内存上储存的是这个数组变量中第一个元素的的首地址,而系统在取数组中某个元素的值时,必须要得到具体的那个元素的地址才能获取到对应的值
具体每个元素的内存地址 = 数组变量首地址 + 下标 X 每个元素占用的字节数
比如:
int a[5]={10,11,12,13,14}
因为 int每个元素占用4个字节,所以 数组中每个相邻的元素内存地址都相差4,
那么每个元素的地址就等于前一个元素的地址 + 4
a[0] 的内存地址 = a的地址 + 0 * 4 (第一个元素的地址计算结果 跟数组的首地址一样)
a[1] 的内存地址 = a的地址 + 1 * 4 (下标是1,内存地址就就是首地址 偏移 4字节)
a[2] 的内存地址 = a的地址 + 2 * 4 (下标是2,内存地址就首地址 偏移 8字节)
..........
a[5]的内存地址 = a的地址 + 5 * 4 (下标是5 内存地址就是首地址 偏移 20字节)
所以数组的索引(下标)从0开始 是为了方便计算每个元素的地址.如果从1开始的话 运算起来没有从0开始方便
所以 大部分编程语言数组索引都是从0开始
相关推荐
千千静听是用什么语言写的?为什么支持这么多的格式还这么小巧?以下内容摘自千千静听5.0.1 目录下的文件FAQ.txt问:千千静听是用什么语言写的,为什么支持这么多的格式还这么小巧?千千静听是用VC6编写的,如果你还知道WTL,那么作者可以告诉你,界面是用WT
数组打乱顺序:洗牌算法 发明者:Fisher–Yates shuffle什么是洗牌算法?在php中,有函数 shufle($arr); 可以直接打乱数组.而有些语言是没有现成的函数的.那么可以自己写一个洗牌算法:第一步:取一个随机数, 最小值和最大值分别为 1和数组的成员
php数组相关的函数大全函数名函数简介array新建一个数组array_change_key_case返回字符串键名全为小写或大写的数组array_chunk将一个数组分割成多个array_column返回数组中指定的一列a
php计算数组重复次数最多的成员直接ctrl+V 慢慢试去吧~<?php function mostRepeatedValues($array,$length=0){ //1. 计算数组的重复值 $arr
股票核买核卖/核按钮/核掉了/是什么意思?核按钮:原本意思是指可用于下达核武器攻击的命令.股市中指的是以跌停价格挂单卖出股票核买:以涨停的价格挂单买入股票核卖:以跌停的价格挂单卖出股票核掉了:至于大家常说的 核掉了 就是以低挂的方式卖掉了的意
VARCHAR(250) 里面的数字有什么作用一直很好奇 VARCHAR(10) 和 VARCHAR(255) 有什么区别如果没有区别 为什么要设计这个?后来突然想到了可能的原因 只是猜测 没查阅资料也没验证很可能是这个数字就是决定 记录长度是使
windows F1到F10分别是什么的快捷键 奇淫技巧快捷键F1:帮助功能。在windows系统中,在程序中或者资源管理器中按下F1,一般都会出现帮助界面,还有一个小技巧,假如正在对某个程序进行操作,需要查看系统帮助,可以同时按win加F1。F2:重命名功能。
什么是极光算法,极光算法对SEO的影响百度拥有庞大的网站数据库,是搜索引擎算法的风向标,推出的算法都是经过深思熟虑的,早在2013年百度就推出了星火算法,进行原创文章保护,但原创文章的归属权一直是一个难题,为此百度在2018年5月发布了极
什么是新闻源,盘点新闻源对SEO的影响对于新闻源而言,虽然,它是一个比较陈旧性的话题,但一直被SEO人员热议,我们不可否认新闻源对于网站SEO而言,具有积极的作用。 因此,大量的SEO人员,尝试与各种新闻源站点,建立长期的合作关系,但有的
sqlite创建索引语句 添加索引 增加索引mysql创建索引alter table 表名 add index 索引名 (列名);sqlite创建索引:CREATE INDEX 索引名 ON 表名 (字段a,字段b);