目录
5数组
5.1概述
所谓数据,就是一个集合,里面存放了相同类型的数据元素;
特点1:数组中的每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的;
5.2一维数组
5.2.1一维数组定义方式
一维数组定义的三种方式:
1.数据类型 数组名[数组长度];
2.数据类型 数组名[数组长度]={值1,值2......};
3.数据类型 数组名[]={值1,值2......};
示例:
int main(){
//定义方式
//数据类型 数组名[元素个数];
int score[18];
//利用下标赋值
score[0]=100;
score[1]=99;
score[2]=98;
//利用下标输出
cout<<score[0]<<endl;
cout<<score[1]<<endl;
cout<<score[2]<<endl;
//第二种定义方式
//数据类型 数组名[元素个数]={值1,值2,值3...};
//如果{}内不足10个数据,剩余数据用0补全
int score2[10]={100,99,98,97,80,70};
//逐个输出
cout<<score2[0]<<endl;
cout<<score2[1]<<endl;
cout<<score2[2]<<endl;
//一个一个输出很麻烦,因此循环输出
for(int i=0,i<10,i++){
cout<<score2[i]<<endl;
}
//定义方式3
//数据类型 数组名[]={值1,值2,值3...};
int score3[]={100,99,98,97,80,70};
for(int i=0,i<10,i++){
cout<<score3[i]<<endl;
}
system("pause");
return 0;
}
总结:数组名的命名规范与变量名命名规范一致,不要和变量名重名;
数组中下标是从0开始索引
5.2.2一维数组数组名
一维数组名称的用途:
1可以统计整个数组在内存中的长度
2可以获取数组在内存中的首地址
示例:
int main(){
//数组名用途
//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;错误,数组名是常量,因此不可以赋值;
system("pause");
return 0;
}
5.2.3冒泡排序
最常用的排序算法,对数组内元素进行排序
1比较相邻的元素,如果第一个比第二大,就交换两个。
2对每一对相对元素做同样的工作,执行完毕候,找到第一个最大值。
3重复以上的步骤,每次比较次数-1,直到不需要比较
示例:
int main(){
int arr[0]={4,2,8,0,5,7,1,3,0};
for(int i=0;i<9-1;i++){
for(int j=0;j<9-1-i;j++){
if(arr[j]>arr[j+1]){
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
5.3二维数组
5.3.1二维数组定义方式
二维数组定义的四种方式:
1.数据类型 数组名[行数][列数];
2.数据类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
3.数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
4.数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};
建议:以上4种定义方式,利用第二种更加直观,提高代码的可读性
示例:
int main(){
//方式1
//数组类型 数组名[行数][列数]
int arr[2][3];
arr[0][0]=1;
arr[0][1]=2;
arr[0][2]=3;
arr[1][0]=4;
arr[1][1]=5;
arr[1][2]=6;
for(int i=0;i<2;i++){
for(int j=0;j<3;j++){
cout<<arr[i][j]<<" ";
}
cout<<endl;
}
//方式2
//数组类型 数组名[行数][列数]={{数据1,数据2},{数据3,数据4}};
int arr2[2][3]=
{
{1,2,3},
{4,5,6}
};
//方式3
//数据类型 数组名[行数][列数]={数据1,数据2,数据3,数据4};
int arr3[2][3]={1,2,3,4,5,6};
//方式4
//数据类型 数组名[][列数]={数据1,数据2,数据3,数据4};
int arr4[][3]={1,2,3,4,5,6};
system("pause");
return 0;
}
总结:在定义二维数组时,如果初始化了数据,可以省略行数;
5.3.2二维数组数组名
查看二维数组所占内存空间
获取二维数组首地址
示例:
int main(){
//二维数组数组名
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;
}
866

被折叠的 条评论
为什么被折叠?



