数组是放在连续的内存空间中,相同数据类型的一个集合
一维数组定义的三种方式:
数据类型 数组名[ 数组长度 ];
数据类型 数组名[ 数组长度 ] = { 值1,值2 ...};
数据类型 数组名[ ] = { 值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 } ,{数据3,数据4 } };
数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
数据类型 数组名[][ 列数 ] = { 数据1,数据2,数据3,数据4};