C++学习笔记【十】—— 数组

C++数组存储一个固定大小的相同类型元素的顺序集合。

声明数组

在 C++ 中要声明一个数组,需要指定元素的类型和元素的数量:

type arrayName [ arraySize ];

初始化数组

1.double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};
2.double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};
3.balance[4] = 50.0;

多维数组

N维数组声明的一般形式:type name[size1][size2]...[sizeN];, 其中sizeN为第N维的数组大小。
例如三维数组的定义:int threedim[5][10][4];

指向数组的指针

数组名是指向数组中第一个元素的常量指针。

double *p;
double balance[10];
p = balance;

使用数组名作为常量指针是合法的,反之亦然。因此,*(balance + 4) 是一种访问 balance[4] 数据的合法方式。
一旦您把第一个元素的地址存储在 p 中,您就可以使用 *p*(p+1)*(p+2) 等来访问数组元素。

传递数组给函数

C++ 中您可以通过指定不带索引的数组名来传递一个指向数组的指针。C++ 传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。
如果您想要在函数中传递一个一维数组作为参数,您必须以下面三种方式来声明函数形式参数,这三种声明方式的结果是一样的,因为每种方式都会告诉编译器将要接收一个整型指针。同样地,您也可以传递一个多维数组作为形式参数。

方式 1:形式参数是一个指针

void myFunction(int *param)
{
}

方式 2:形式参数是一个已定义大小的数组:

void myFunction(int param[10])
{
.
.
.
}

方式 3:形式参数是一个未定义大小的数组:

void myFunction(int param[])
{
.
.
.
}

上述三种形式在调用的时候,均只需要传入一个数组指针即可。
such as:

// 函数声明
double getAverage(int arr[], int size);
   // 带有 5 个元素的整型数组
   int balance[5] = {1000, 2, 3, 17, 50};
   double avg;
   // 传递一个指向数组的指针作为参数
   avg = getAverage( balance, 5 ) ;

从函数返回数组

C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。
如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:

int * myFunction()
{
.
.
.
}

你可能感兴趣的:(c/c++)