一维数组
定义方式
数组类型 数组名称[ 数组长度 ];
数组类型 数组名称[ 数组长度 ] = {值1,值2,值3...}
数组类型 数组名称[ ] = {值1,值2,值3...}
- 数组中下标从0开始索引
数组组名
一维数组名称的用途:
- 可以统计整个数组在内存中的长度
- 可以获取数组在内存中的首地址
//数组名用途
//1、可以获取整个数组占用内存空间大小
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
cout << "整个数组所占内存空间为: " << sizeof(arr) << endl;
cout << "每个元素所占内存空间为: " << sizeof(arr[0]) << endl;
cout << "数组的元素个数为: " << sizeof(arr) / sizeof(arr[0]) << endl;
//2、可以通过数组名获取到数组首地址
cout << "数组首地址为: " << (int)arr << endl;
cout << "数组中第一个元素地址为: " << (int)&arr[0] << endl;
cout << "数组中第二个元素地址为: " << (int)&arr[1] << endl;
//arr = 100; 错误,数组名是常量,因此不可以赋值
// 五只小猪称体重
int arr1[5] = { 300,350,200,400,250 };
int max = arr1[0];
for (int i = 1; i < 5; i++)
{
if (arr1[i] > max)
{
max = arr1[i];
}
}
cout << max << endl;
// 数组元素逆置
int arr2[5] = { 1,3,2,5,4 };
int temp;
int end = sizeof(arr2) / sizeof(arr2[0]) - 1;
int j = end;
for (int i = 0; i < j; i++)
{
temp = arr2[i];
arr2[i] = arr2[j];
arr2[j] = temp;
j--;
}
for (int i = 0; i <= end; i++)
{
cout << arr2[i] << endl;
}
return 0;
冒泡排序
- 数组内元素排序算法
//冒泡排序
// 找9次
int arr3[] = { 4,2,8,0,5,7,1,3,9 };
int temp = 0,i = 0,j;
do
{
for (j = 0; j < 8- i; j++) // 每次少排一个数字
{
if (arr3[j] > arr3[j + 1])
{
temp = arr3[j + 1];
arr3[j + 1] = arr3[j];
arr3[j] = temp;
}
}
j = 0;
i++;
} while (i <= 8 );
for (int i = 0; i <= 8; i++)
{
cout << arr3[i] << endl;
}
二维数组
定义方式
数据类型 数组名[ 行数 ][ 列数 ];
数据类型 数组名[ 行数 ][ 列数 ] = { {数据1,数据2 } ,{数据3,数据4 } };
数据类型 数组名[ 行数 ][ 列数 ] = { 数据1,数据2,数据3,数据4};
数据类型 数组名[ ][ 列数 ] = { 数据1,数据2,数据3,数据4};
数组名
- 查看二维数组所占内存空间
- 获取二维数组首地址
//二维数组数组名
int arr[2][3] =
{
{1,2,3},
{4,5,6}
};
cout << "二维数组大小: " << sizeof(arr) << endl;
cout << "二维数组一行大小: " << sizeof(arr[0]) << endl;
cout << "二维数组元素大小: " << sizeof(arr[0][0]) << endl;
cout << "二维数组行数: " << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "二维数组列数: " << sizeof(arr[0]) / sizeof(arr[0][0]) << endl;
//地址
cout << "二维数组首地址:" << arr << endl;
cout << "二维数组第一行地址:" << arr[0] << endl;
cout << "二维数组第二行地址:" << arr[1] << endl;
cout << "二维数组第一个元素地址:" << &arr[0][0] << endl;
cout << "二维数组第二个元素地址:" << &arr[0][1] << endl;