C++数组的使用

续函数篇

所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。

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

type arrayName [ arraySize ];

在 C++ 中,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示:

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

如果您省略掉了数组的大小,数组的大小则为初始化时元素的个数。因此,如果:

double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

该数组的首个数组元素的地址也就是该数组的地址(学过汇编语言的都知道 在这里会申请一个内存段 该段地址也就是该数组的地址 )

setw(13)设置宽度

C++ 支持多维数组。多维数组声明的一般形式如下:

type name[size1][size2]...[sizeN];

多维数组可以通过在括号内为每行指定值来进行初始化。下面是一个带有 3 行 4 列的数组。

int a[3][4] = {  
 {0, 1, 2, 3} ,   /*  初始化索引号为 0 的行 */
 {4, 5, 6, 7} ,   /*  初始化索引号为 1 的行 */
 {8, 9, 10, 11}   /*  初始化索引号为 2 的行 */};

内部嵌套的括号是可选的,下面的初始化与上面是等同的:

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};


数组指针

C++ 中,将 char * 或 char[] 传递给 cout 进行输出,结果会是整个字符串,如果想要获得字符串的地址(第一个字符的内存地址),可使用以下方法:

强制转化为其他指针(非 char*)。可以是 void *,int *,float *, double * 等。* 使用 &s[0] 不能输出 s[0](首字符)的地址。因为 &s[0] 

将返回 char*,对于 char*char 指针),cout 会将其作为字符串来处理,向下查找字符并输出直到字符结束 *。


原文地址:https://www.cnblogs.com/webcyh/p/11261400.html