一维数组
数组
数组名
1.数组:就是一个集合,里面放了相同类型的数据元素。
要求:数据类型相同,数据内存位置连续。
注意:数组下标从0开始,数组名不要和变量名重名。
定义方式:
(1)数据类型 数组名[ 数组长度 ];
(2)数据类型 数组名[ 数组长度 ] = { 值1,值2 …}
(3)数据类型 数据名[ ] = {值1, 值2…}
初始化数据时,没有完全填写完,会用0来补全。
#include<iostream>
using namespace std;
int main() {
int arr[5];
arr[0] = 0;
arr[1] = 1;
arr[2] = 2;
arr[3] = 3;
arr[4] = 4;
cout << arr[0] << endl;
cout << arr[1] << endl;
int arr1[5] = { 1,2,3,4,5 };
cout << arr1[2] << endl;
for (int i = 0; i < 5; i++)
{
cout << arr1[i] << endl;
}
int arr2[] = {0,1,2,3,4,5,6,7,8,9};
for (int j = 0; j < 10; j++)
{
cout << arr2[j] << endl;
}
system("pause");
return 0;
}
2.数组名
数组名是常量,不可以赋值。
数组名的作用:
(1)用sizeof(arr)可以获得整个数组的长度,用sizeof(arr[0])测试单个元素的长度。
(2)用cout<<arr<<endl;可以获取数组内存的首位置。
#include<iostream>
using namespace std;
int main() {
int arr[10] = {0,1,2,3,4,5,6,7,8,9};
for (int j = 0; j < 10; j++)
{
cout << arr[j] << endl;
}
cout << "整个数组占用的数组空间 : " << sizeof(arr) << endl;
cout << "每个数据占用的数组空间 : " << sizeof(arr[0]) << endl;
cout << "数组元素个数 : " << sizeof(arr) / sizeof(arr[0]) << endl;
cout << "数组元素首地址位置 : " << (int)arr << endl;
cout << "数组第一个元素的位置 : " << (int)&arr[0] << endl;
cout << "数组第一个元素的位置 : " << (int)&arr[1] << endl;
system("pause");
return 0;
}
举例:找数组元素最大值并首尾元素互换
#include<iostream>
using namespace std;
int main() {
int arr[5] = {600,60,6,66,666};
int max = 0;
for (int j = 0; j < 5; j++)
{
if (max < arr[j])
{
max = arr[j];
}
}
cout << max << endl;
int start = 0;
int end = sizeof(arr) / sizeof(arr[0]) - 1;
while (start < end)
{
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
cout << "数组元素首尾互换位置后" << endl;
for (int i = 0; i < 5; i++)
{
cout << arr[i] << endl;
}
system("pause");
return 0;
}
举例2:冒泡排序
#include<iostream>
using namespace std;
int main() {
int arr[10] = {5,8,6,0,9,3,7,1,4,2};
cout << "排序前" << endl;
for (int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
//冒泡排序
for (int i = 0; i < 10 - 1; i++)
{
for (int j = 0; j < 10 - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
cout << endl;
cout << "排序后" << endl;
for (int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
system("pause");
return 0;
}