标签:blog c++ char* 返回 int 因此 数组元素 段地址 info
续函数篇
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 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 会将其作为字符串来处理,向下查找字符并输出直到字符结束 *。
标签:blog c++ char* 返回 int 因此 数组元素 段地址 info
原文地址:https://www.cnblogs.com/webcyh/p/11261400.html