数组
数组
所谓数组,就是一个集合,里面存放了相同类型的数据元素
特点1:数组中的每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的
数组-一维数组定义方式
一维数组定义的三种方式:
1.数据类型 数组名[数组长度];
2.数据类型 数组名[数组长度]={值1,值2,....};//如果在初始化数据的时候没有全部填写完 会用0来填补剩余的数据
3.数组类型 数组名[]={值1,值2,...};//定义数组的时候,必须有个初始长度
数组不要与变量名重名
数组中下标是从0开始索引
数组-一维数组-数组名
一维数组名称用途(filename18)
1可以统计整个数组在内存中长度 sizeof(arr[0])一个元素 sizeof(arr)整个数组长度
cout << "数组中元素的个数" << sizeof(arr) / sizeof(arr[0]) << endl;
2可以获取数组在内存中的首地址 cout<<arr<<endl;
cout<<"数组首地址为:"<<(int)arr<<endl; int作用是把16进制转为10进制
cout<<"数组中第一个元素地址为:"<<(int)&arr[0]<<endl;
数组名是常量不可以赋值
一维数组案例
从数组中找最大 先认定一个最大值 让后用判断filename19
数组元素逆值 怎么实现元素呼唤filename19
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
算法 数组-一维数组 冒泡排序(filename20)
作用:最常用的排序算法,对数组内元素进行排序
1比较相邻的元素.如果第一个比第二个大,就交换他们两个
2比每一对相邻元素做同样工作,执行完毕后,找到第一个最大值
3重复以上步骤,每次比较次数-1,直到不需要比较
双循环一个控制循环层数 一个控制比较次数
下面是while 循环法+标志位
include
using namespace std;
int main() {
int arr[9] = {2,4,0,5,7,1,3,8,9};
bool swapped;
do {
swapped = false;
// 这个循环相当于原来的内层循环
for (int i = 0; i < 8; i++) { // 注意这里是8,不是9-1
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
}
} while (swapped); // 这个条件相当于外层循环的控制
for (int i = 0; i < 9; i++) {
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
二维数组定义方式(filename21)
二维数组就是在一维数组上多加上一个维度
二维数组定义方式
1数据类型 数组名[行数][列数];
2数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}}
3数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4}
4数据类型 数组名[][列数]={数据1,数据2,数据3,数据4}
二维数组-数组名(filename22)
查看二维数组所占内存空间
获取二维数组首地址
查看单个元素地址&arr[0][0]
应用案例 输出和filename23