續函數篇
所有的數組都是由連續的內存位置組成。最低的地址對應第一個元素,最高的地址對應最后一個元素。
在 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 會將其作為字符串來處理,向下查找字符並輸出直到字符結束 *。