如何访问数组的内容

所谓数组是指一个用来存储一系列变量值的命名区域。因此,可以用数组组织标量变量。当要访问一个变量的内容时,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。关键字或索引将指定要访问的变量。索引在变量名称后面方括号括起来。

       使用$products[0]、$products[1]、$products[2],就可以使用数组$products的内容了。

       在默认的情况下,0元素是数组的第一个元素。这和C语言、C++、Java以及许多其他编程语言的计数模式是相同的。如果你对这些内容很陌生,就因该熟悉一下。

数组数据依赖关系分析

并行化或局部性优化经常对原程序中执行的运算重新排序。和所有的优化一样,只有当对运算的重新排序不会改变程序输出时才可以对这些运算重新排序。一般来说,我们不可能深人理解一个程序到底做了什么,代码优化通常选用一个较简单的、保守的测试方法来决定在什么时候可以肯定程序的输出不会受到优化的影响:检查在原程序中和在修改后的程序中,对同一内存位置的各个运算被执行的顺序是否一样。在当前的研究中,我们关注的是数组访问,因此数组元 素就是需要考虑的内存位置。

如果两个访问(不管是读还是写)指向两个不同的位置,显然它们是相互独立的(可以被重 新排序)。另外,读运算不会改变内存的状态,因此各个读运算之间是独立的。如果两个访问指向同一个内存位置并且其中至少有一个写运算,那么就说这两个访问是数据 依赖的。为了保证修改后的程序和原程序做同样的事情,每一对有数据依赖关系的运算在原程 序中的执行顺序必须在新的程序中得到保持。

数组内部成员初始化

所有数组(不论它是primitive的还是对象的)都有一个可供查询的内部成员)但是你不能修改——它会告诉你这个数组有多少元素。这个成员就是length。由于Java的数组,同C和C++的一样,是从零开始计算的,因此你能访问的最大的数组下标length-1。如果是C和C++的数组,即使你过了界,它也会安安静静地接受这个指令,然后放你到内存里乱串一气,许多臭名昭著的bug就是由此产生的。

但是Java能让你免受这些问题的困扰。一旦你出了界,就会引发一个运行时错误。当然,每次访问数组的时候都要花时间检查,而且代码也会长些,但是你没法把它关了,也就是说,如果效率非常重要,那么访问数组就可能会成为拖累程序效率的一个因素。但是为了internet的安全和程序员的编程效率,Java的设计者们认为这个代价还是值得的。

数组的初始化

在C语言里,初始化数组是一件既常容易出错又冗长乏味的事。C++用所谓的“集合初始化”大大增强了这个过程的安全性。由于Java的一切都是对象,因而它没有C++的“集合”。它也有数组,并且提供了数组的初始化。数组只是一个列在同一个标识符名下的简单序列,这个序列既可以是primitive的,也可以是同一种类型的对象的。数组是通过由方括号括起来的数组下表来定义和使用的。

要定义一个数组,只要直接在类型的名字后面加上一对空的方括号就行了。你也可以将方括号放到标识符的后面,这样做的意思是相同的。这种写法是C和C++程序员们所预想的。但是前一种写法可能更好一些,因为它在说这个类型是“一个int型的数组”。

«1»
最近发表
控制面板
您好,欢迎到访网站!
  [查看权限]
网站分类
搜索
Tags列表
网站收藏
图标汇集
  • 订阅本站的 RSS 2.0 新闻聚合
友情链接

热门搜索: 外链域名 高外链域名 高收录域名

Copyright www.thyst.cn. Some Rights Reserved.