在一个数组是可见的一个方案,其中的任何一点,我们可以个别访问的任何元素的值,就好像它是一个正常的变量,从而能够同时读取和修改它的值。
格式很简单,只要:
名[索引]
继续上面的例子billy有5个元素,每个元素都是int类型的,我们可以用它来 指每个元素的名称是以下几点:
例如,要存储的价值75 billy中的第三个元素,我们可以写如下语句:
例如,传递的第三个元素比利变量名为价值,我们可以这样写:
因此,表达比利[2]的所有目的而言就像一个int类型的变量。
请注意,指定的第三个元素铁罐铁罐[2],由于第一个是铁罐[0],第二个是铁罐[1],因此,第三个是铁罐[2]。 同样的原因,它的最后一个元素是 billy [4]。 因此,如果我们写比利[5],我们将进入第六个元素的比利 ,因此超过数组的大小。
在C + +语法正确超出有效范围的索引的数组。 这可能会造成问题,因为访问范围的元素不会导致编译错误,但可能会导致运行时错误。 之所以这是允许的,将被视为未来当我们开始使用指针。
在这一点上,重要的是要能够清楚地区别括号[]数组两用。 他们执行两个不同的任务:一个是在声明时指定数组的大小,以及第二个是指定具体的数组元素的索引。 括号[]数组,不要混淆这两种可能的用途。
如果你仔细阅读,你会看到一个类型说明符总是一个变量或数组声明之前,它从来没有访问之前。
其他一些有效的数组操作:
多维数组可以被描述为“数组的数组”。 例如,一个二维数组可以被想象成一个二维表的元素,所有的人都同一个统一的数据类型。
吉米·代表一个bidimensional的3每5个元素的数组int类型。 的方式来声明这个数组在C + +将是:
并且,例如,引用在表达式中的第二个元素的垂直和水平第四的方式将是:
(记住数组索引总是由零开始)。
多维数组并不限于两个指数(即,两维)。 根据需要,它们可以包含尽可能多的指标。 但要小心! 每个维度的数组需要迅速增加的内存量。 例如:
声明用char数组元素每一秒,在一个世纪,也就是超过3亿个字符。 因此,这个声明会消耗超过3 GB的内存!
多维数组只是一个抽象的程序员,因为我们可以用一个简单的数组得到相同的结果,只是把其指数之间的一个因素:
唯一的区别是多维数组的编译器会记住每个假想尺寸的深度为我们。 例如以这两段代码,两个完全相同的结果。 一个使用一个二维数组,而另一个使用一个简单的数组:
上述两个源代码没有产生任何输出在屏幕上,但同时分配的内存块叫吉米通过以下方式:
我们已经使用“定义的常量”( 定义 )的方案,以简化未来可能的修改。 的情况下,例如,我们决定放大阵列,它可以做到简单地通过改变行的高度为4而不是3:
到:
没有必要作出任何其他修改程序。
为了接受数组作为参数声明函数时,我们所要做的唯一的事情是在其参数中指定的元素类型的数组,一个标识符和一个的对空隙括号[]。 例如,下面的函数:
接受一个参数类型为“int”的叫精氨酸的数组。 为了通过这个函数声明的数组:
这样就足够写的调用:
在这里,你有一个完整的例子:
正如你可以看到,第一个参数(参数[])接受任何数组,其元素是int类型的,无论其长度。 出于这个原因,我们已经告诉函数的第二个参数,每个数组的长度,我们作为第一个参数传递给它。 这使得循环打印出数组知道的范围内,没有走出去的范围内循环传递的数组。
在函数声明中它也有可能包括多维数组。 立体阵列参数的格式是:
例如,多维数组作为参数的功能可以是:
请注意,第一个括号[]是空的,而下面的指定为各自的尺寸大小。 这是必要的,为了使编译器能够确定每增加一维的深度。
或多维阵列,既简单,作为函数参数传递是一个相当普遍的新手程序员的错误来源。 我建议阅读阵列如何更好地理解指针的相关章节。
名[索引]
继续上面的例子billy有5个元素,每个元素都是int类型的,我们可以用它来 指每个元素的名称是以下几点:

例如,要存储的价值75 billy中的第三个元素,我们可以写如下语句:
| |
例如,传递的第三个元素比利变量名为价值,我们可以这样写:
| |
因此,表达比利[2]的所有目的而言就像一个int类型的变量。
请注意,指定的第三个元素铁罐铁罐[2],由于第一个是铁罐[0],第二个是铁罐[1],因此,第三个是铁罐[2]。 同样的原因,它的最后一个元素是 billy [4]。 因此,如果我们写比利[5],我们将进入第六个元素的比利 ,因此超过数组的大小。
在C + +语法正确超出有效范围的索引的数组。 这可能会造成问题,因为访问范围的元素不会导致编译错误,但可能会导致运行时错误。 之所以这是允许的,将被视为未来当我们开始使用指针。
在这一点上,重要的是要能够清楚地区别括号[]数组两用。 他们执行两个不同的任务:一个是在声明时指定数组的大小,以及第二个是指定具体的数组元素的索引。 括号[]数组,不要混淆这两种可能的用途。
| |
如果你仔细阅读,你会看到一个类型说明符总是一个变量或数组声明之前,它从来没有访问之前。
其他一些有效的数组操作:
| |
| | 12206 |
多维数组
多维数组可以被描述为“数组的数组”。 例如,一个二维数组可以被想象成一个二维表的元素,所有的人都同一个统一的数据类型。

吉米·代表一个bidimensional的3每5个元素的数组int类型。 的方式来声明这个数组在C + +将是:
| |
并且,例如,引用在表达式中的第二个元素的垂直和水平第四的方式将是:
| |

(记住数组索引总是由零开始)。
多维数组并不限于两个指数(即,两维)。 根据需要,它们可以包含尽可能多的指标。 但要小心! 每个维度的数组需要迅速增加的内存量。 例如:
| |
声明用char数组元素每一秒,在一个世纪,也就是超过3亿个字符。 因此,这个声明会消耗超过3 GB的内存!
多维数组只是一个抽象的程序员,因为我们可以用一个简单的数组得到相同的结果,只是把其指数之间的一个因素:
| |
唯一的区别是多维数组的编译器会记住每个假想尺寸的深度为我们。 例如以这两段代码,两个完全相同的结果。 一个使用一个二维数组,而另一个使用一个简单的数组:
多维数组 | 伪多维数组 |
---|---|
#定义宽度5 #定义高度为3 吉米[高度] [宽]; 整数N,M; 国际主要() { 组(n = 0,N <身高,N + +) (m = 0时,M <宽度,M + +) { 吉米[N] [M] =(N +1)*(M +1); } 返回0; } | #定义宽度5 #定义高度为3 吉米[高*宽]; 整数N,M; 国际主要() { 组(n = 0,N <身高,N + +) (m = 0时,M <宽度,M + +) { 吉米[N *宽+ M] =(N +1)*(M +1); } 返回0; } |
上述两个源代码没有产生任何输出在屏幕上,但同时分配的内存块叫吉米通过以下方式:

我们已经使用“定义的常量”( 定义 )的方案,以简化未来可能的修改。 的情况下,例如,我们决定放大阵列,它可以做到简单地通过改变行的高度为4而不是3:
| #define HEIGHT 3 |
到:
| #define HEIGHT 4 |
没有必要作出任何其他修改程序。
数组作为参数
在某些时候,我们可能需要一个函数作为参数传递数组。 在C + +中是不可能的值作为参数传递给函数传递一个完整的内存块,但我们被允许通过其地址。 在实践中,具有几乎相同的效果,它是一个更快,更高效的操作。为了接受数组作为参数声明函数时,我们所要做的唯一的事情是在其参数中指定的元素类型的数组,一个标识符和一个的对空隙括号[]。 例如,下面的函数:
| |
接受一个参数类型为“int”的叫精氨酸的数组。 为了通过这个函数声明的数组:
| |
这样就足够写的调用:
| |
在这里,你有一个完整的例子:
| | 5 10 15 2 4 6 8 10 |
正如你可以看到,第一个参数(参数[])接受任何数组,其元素是int类型的,无论其长度。 出于这个原因,我们已经告诉函数的第二个参数,每个数组的长度,我们作为第一个参数传递给它。 这使得循环打印出数组知道的范围内,没有走出去的范围内循环传递的数组。
在函数声明中它也有可能包括多维数组。 立体阵列参数的格式是:
| |
例如,多维数组作为参数的功能可以是:
| |
请注意,第一个括号[]是空的,而下面的指定为各自的尺寸大小。 这是必要的,为了使编译器能够确定每增加一维的深度。
或多维阵列,既简单,作为函数参数传递是一个相当普遍的新手程序员的错误来源。 我建议阅读阵列如何更好地理解指针的相关章节。