- 数组定义由类型名、标识符和维数组成。维数指定数组中包含的元素的数目,它被写在一对方括号里面。维数值必须是常量表达式。
int ia [10]; //声明了一个包含10个int对象的数组
- 数组是一个单一数据类型对象的集合。 其中单个对象并没有被命名,但是我们可以通过它在数组中的位置对它进行访问。 这种访问形式叫做索引访问(下标访问)。
每个对象被称为是ia的一个元素(element)。每个元素都可以通过下标来进行访问, 如:ia[2]
数组的初始化
======================================================================
- 数组可以显式地用一组数来初始化,这组数用逗号分开,放在大括号中。例如:
const int array_size = 3; int ia[array_size] = { 0, 1, 2 };
显式的初始化其实可以不用指定维数值,编译器会根据列出的元素个数来确定数组的维数。 例如:
//维数为3的数组 int ia[] = { 0, 1, 2 };
如果指定了维数,那么初始化列表提供的元素个数不能超过维数值。否则编译错误。
如果指定的维数大于给出的元素个数,那么没有被显式初始化的元素将被置为0. 例如:
//ia ==> { 0, 1, 2, 0, 0 } const int array_size = 5; int ia[ array_size ] = { 0, 1, 2 };
字符数组可以用一个由逗号分开的字符文字列表初始化(文字列表用花括号括起来);或者用一个字符串文字初始化。但是注意这两者并不是等价的。
const char ca1[] = { 'C', '+', '+' }; //ca1的维数是3 const char ca2[] = "C++"; //ca2的维数是4,因为字符串常量包含一个额外的终止空字符
- 一个数组不能被另外一个数组初始化,也不能被赋值给另外一个数组。
- C++不允许声明一个引用数组(即由引用组成的数组)。但是可以声明一个指针类型的数组。例如:
//ok: 类型为int*的指针的数组 int *iap[] = { &ix, &jx, &kx }; //错误:不允许引用数组 int &iar[] = { ix, jx, kx };
多维数组
================================================================
int ia [4][3];定义了一个二维数组。 第一维被称做行维,第二维被称做列维。
int ia[4][3] = {
{ 0, 1, 2 },
{ 3, 4, 5 },
{ 6, 7, 8 },
{ 9, 10, 11 }
};
数组与指针类型的关系
=================================================================
ia是上面数组的标识符。 它实际是一个int类型的指针,它代表了数组的第一个元素的地址。
数组元素的遍历可以通过下标操作符来实现。或者我们也可以通过直接操作指针来实现数组元素的遍历。例如:
#include <iostream> int main() { int ia[9] = {0, 1, 1, 2, 3, 5, 8, 13, 21}; int *pbegin = ia; int *pend = ia + 9; while (pbegin != pend) { cout << *pbegin << ''; ++pbegin; } }
原文链接: https://www.cnblogs.com/JaneTang/archive/2010/02/16/1668755.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/8201
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!