目录
2.2一维数组的数组名:数组在内存中的长度,在内存中的首地址
1.概述
连续内存空间中存放了相同数据类型的元素
2.一维数组
2.1一维数组的定义
#include<iostream>
using namespace std;
int main()
{
//一维数组
//1.数据类型 数组名[数组长度];
int arr[5];
//给数组中的元素进行赋值
//数组元素的下标是从0开始索引的
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
//访问数组的元素
cout << arr[0] << endl;
//数据类型 数组名[数组长度]={值1,值2,。。。}
//如果在初始化数据时,没有全部填写,会用0来填补剩余的数据
int arr2[5] = { 11,12,13,14 };
//利用循环输出数组中的元素
for (int i = 0; i <= 4; i++)
{
cout << arr2[i] << endl;
}
//数据类型 数组名[]={值1,值2,。。。}
int arr3[] = { 90,80,70,60 };
system("pause");
return 0;
}
2.2一维数组的数组名:数组在内存中的长度,在内存中的首地址
#include<iostream>
using namespace std;
int main()
{
//数组名的用途
//1.统计整个数组占用内存的大小
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
//因为整型占四个字节
cout << "整个数组占用的内存空间为:" << sizeof(arr) << endl;//输出:40
//每个元素都是整型,随便写一个就可以
cout << "每个元素占用的内存空间为:" << sizeof(arr[0]) << endl;//输出:4
cout << "数组中元素个数为:" << sizeof(arr) / sizeof(arr[0]) << endl;//输出:10
//2.查看数组的首地址
cout << "数组首地址为:" << arr << endl;//一般输出16进制
cout << "数组首地址为:" << (int)arr << endl;//转换为10进制输出
cout << "数组中第一个元素的地址为:" << (int)&arr[0] << endl;
cout << "数组中第二个元素的地址为:" << (int)&arr[1] << endl;
//数组名是常量,不可以执行赋值操作
//arr=100;、错误代码
system("pause");
return 0;
}
2.3冒泡排序
#include<iostream>
using namespace std;
int main()
{
//利用冒泡排序实现升序序列
int arr[] = { 4,2,8,0,5,7,1,3,9 };
int temp;
cout << "排序前:" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}
cout << endl;
//总排序的轮数为:元素个数-1
for (int i = 1; i<=9-1; i++)
{
//对比次数 元素个数-当前轮数
for (int j = 0; j < 9-i; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
cout << "排序后:" << endl;
for (int i = 0; i < 9; i++)
{
cout << arr[i] << " ";
}
cout << endl;
system("pause");
return 0;
}
3.二维数组
3.1二维数组的定义方式
#include<iostream>
using namespace std;
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] =
{
{11,22,33},//注意逗号
{44,55,66}
};
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
cout << arr2[i][j] << " ";
}
cout << endl;
}
//3.数据类型 数组名[行数][列数]={数据1,数据2,...};
//数据自动根据行数列数进行划分
int arr3[2][3] = { 1,2,3,4,5,6 };
//4.数据类型 数组名[][列数]={数据1,数据2,...};
//因为写了列数,就知道每3列为1行了
int arr4[][3] = { 11,22,33,44,55,66 };
system("pause");
return 0;
}
3.2二维数组的数组名,内存空间,首地址
#include<iostream>
using namespace std;
int main()
{
//二维数组名称用途
//1.查看占用内存空间的大小
int arr[2][3] =
{
{1,2,3},
{4,5,6}
};
cout << "二维数组所占的内存空间为:" << sizeof(arr) << endl;//输出 24
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;
//2.查看二维数组的首地址
cout << "二维数组的首地址为:"<<(int)arr << endl;
cout << "二维数组第一行首地址为:" << (int)arr[0] << endl;
cout << "二维数组第一行首地址为:" << (int)arr[1] << endl;
//看具体元素的地址,要多加一个取地址符号&
cout << "二维数组第一个元素首地址为:" << (int)&arr[0][0] << endl;
cout << "二维数组第二个元素首地址为:" << (int)&arr[0][0] << endl;
system("pause");
return 0;
}