6、数组

数组是放在连续的内存空间中,相同数据类型的一个集合

一维数组

一维数组定义的三种方式:

  1. 数据类型 数组名[ 数组长度 ];
  2. 数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};
  3. 数据类型 数组名[ ] = { 值1,值2 ...};

方式一例子:

#include<iostream>
using namespace std;

int main() {
	
	int a[2];
	a[0] = 1;
	a[1] = 2;
    //获取数组长度
	int arrayLength = sizeof(a) / sizeof(a[0]);
	for (int i = 0; i < arrayLength; i++) {
		cout << a[i] << endl;
	}

	system("pause");
	return 0;
}

方式二例子:

#include<iostream>
using namespace std;
#include<string>

int main() {
	
	string a[2] = { "lucy","tom" };
	for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
		cout << a[i] << endl;
	}

	system("pause");
	return 0;
}

方式三例子:

#include<iostream>
using namespace std;
#include<string>

int main() {
	
	string a[] = { "lucy","tom" };
	for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
		cout << a[i] << endl;
	}

	system("pause");
	return 0;
}

数组名的用途

数组名是一个常量,不可以重新赋值

获取数组元素个数

由于数组里面的所有元素的数据类型是一样的,所以,每一个元素的内存占用长度也是一样的,可以使用sizeof()计算出数组在内存中占用的总长度,然后除以单个元素的内存长度

例子:

#include<iostream>
using namespace std;

int main() {
	
	int a[5];
	int arrayLength = sizeof(a) / sizeof(a[0]);
	cout << a[1] << endl;
	cout << "数组a的元素个数是:" << arrayLength << endl;

	system("pause");
	return 0;
}

获取数组在内存中的首地址

#include<iostream>
using namespace std;
#include<string>

int main() {

	string a[] = { "lucy","tom" };
	//获取数组在内存的首地址值:十六进制
	cout << "首地址:" << a << endl; //首地址:008FFB5C
	//获取数组在内存的首地址值:十进制
	cout << "首地址:" << (int)a << endl; //首地址:5503028
	cout << &a[0] << endl; //008FFB5C,由此可见,数组变量a,保存的就是第一个元素的地址
	system("pause");
	return 0;
}

获取数组中单个元素的地址值

&符号,为cpp中的取址符,加在元素或变量前面可以用来取地址值

#include<iostream>
using namespace std;
#include<string>

int main() {
	
	int a = 10;
	//取变量a在内存中十六进制地址
	cout << &a << endl; //00F5FB84

	system("pause");
	return 0;
}
#include<iostream>
using namespace std;
#include<string>

int main() {
	
	string a[] = { "lucy","tom" };
	//获取数组第一个元素在内存的地址值:十进制
	cout << "地址:" << (int)&a[0] << endl; //地址:5503152
	//获取数组第二个元素在内存的地址值:十进制
	cout << "地址:" << (int)&a[1] << endl; //地址:5503180
	system("pause");
	return 0;
}

二维数组

二维数组定义的四种方式:

  1. 数据类型 数组名[ 行数 ][ 列数 ];
  2. 数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
  3. 数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
  4. 数据类型 数组名[][ 列数 ] = { 数据1,数据2,数据3,数据4};