C++学习笔记
一维数组
数组概念
数组概述:
所谓数组,就是一个集合,里面存放了相同类型的数据元素
特点1:数组中的每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的
一维数组的定义形式
一维数组定义的三种形式:
1、数据类型 数组名[数组长度];
2、数据类型 数组名[数组长度] = {值1,值2…};
3、数据类型 数组名[] = {值1,值2…};
一维数组名称
一维数组名称用途:
1、可以统计整个数组在内存中的长度
2、可以获取数组在内存中的首地址
体现一维数组概念的相关代码及注释
#include<iostream>
using namespace std;
int main()
{
/*数组概述:
所谓数组,就是一个集合,里面存放了相同类型的数据元素
特点1:数组中的每个数据元素都是相同的数据类型
特点2:数组是由连续的内存位置组成的
***************************
***************************
一维数组定义的三种形式:
1、数据类型 数组名[数组长度];
2、数据类型 数组名[数组长度] = {值1,值2...};
3、数据类型 数组名[] = {值1,值2...};
*/
cout << "数组1:" << endl;
//数据类型 数组名[数组长度];
int arr0[5];
//给数组中元素赋值
//数组元素的下标是从0开始索引的
arr0[0] = 10;
arr0[1] =20 ;
arr0[2] = 30;
arr0[3] = 40;
arr0[4] = 50;
//循环访问数据元素
for (int i=0;i<5;i++)
{
cout << arr0[i] <<" ";
}
cout << endl;
cout << "arr0所占用内存空间大小为:" << sizeof(arr0) << endl;
cout << "数组2:" << endl;
//数据类型 数组名[数组长度] = {值1,值2...};
int arr1[10] = { 1,2,3,4,5,6,7,8,9,0 };
for(int j=0;j<10;j++)
{
cout << arr1[j] << " ";
}
cout << endl;
cout << "数组3:" << endl;
//数据类型 数组名[] = {值1,值2...};
int arr2[] = { 12,23,34,45,56,67,78,89,90,10,11 };
for (int k = 0; k < 11; k++)
{
cout << arr2[k] << " ";
}
cout<<endl;
/*总结:
1、数组名命名规范与变量名命名规范一致,不要和变量重名
2、数组中下标是从0开始索引*/
//**********
//**********
//一维数组名称用途:
// 1、可以统计整个数组在内存中的长度
// 2、可以获取数组在内存中的首地址
cout << "数组arr0所占内存长度:" << sizeof(arr0) << endl;//统计整个数组在内存中的长度
cout << "arr0中每个元素占用内存空间为:" << sizeof(arr0[0]) << endl;
cout << "数组中的元素个数为:" << sizeof(arr0) / sizeof(arr0[0]) << endl;
cout << "数组arr1所占内存长度:" << sizeof(arr1) << endl;//统计整个数组在内存中的长度
cout << "数组arr2所占内存长度:" << sizeof(arr2) << endl;//统计整个数组在内存中的长度
cout <<"arr0地址编号为:" << (int)arr0 << endl;//加(int)转为十进制
cout << "arr0数组中第一个元素地址为:" << (int)&arr0[0] << endl;
cout <<"arr1地址编号为:" << arr1 << endl;
cout <<"arr2地址编号为:" << arr2 << endl;
/*
**********
*********
数组名是常量,不可以进行赋值操作
如:
arr0 = 10;会报错
*/
system("pause");
return 0;
}
运行结果
数组1:
10 20 30 40 50
arr0所占用内存空间大小为:20
数组2:
1 2 3 4 5 6 7 8 9 0
数组3:
12 23 34 45 56 67 78 89 90 10 11
数组arr0所占内存长度:20
arr0中每个元素占用内存空间为:4
数组中的元素个数为:5
数组arr1所占内存长度:40
数组arr2所占内存长度:44
arr0地址编号为:2022898328
arr0数组中第一个元素地址为:2022898328
arr1地址编号为:0000005E7892FAE8
arr2地址编号为:0000005E7892FB48
请按任意键继续. . .
相关案例
案例一、五只小猪称体重
案例描述:
// 在一个数组中记录了五只小猪的体重,如:int arr[5] = { 300,350,200,400,250 };
// 找出并打印最重小猪的体重。
思路:访问数组中的每个元素,如果这个元素比认定的最大值还要大,就更新最大值。
相关代码
#include<iostream>
using namespace std;
int main()
{
//案例名:五只小猪称体重
// 案例描述:
// 在一个数组中记录了五只小猪的体重,如:int arr[5] = { 300,350,200,400,250 };
// 找出并打印最重小猪的体重。
//1、创建五只小猪体重的数组
int arr[5] = { 300,350,200,400,250 };
//从五个数中找出最大值
int max = 0;//先认定最大值为0
for (int i = 0; i < 5; i++)
{
if (arr[i] > max)
{
max = arr[i];//如果访问的数组中元素大于认定的最大值,那么就更新最大值
}
}
cout << "最重的小猪体重为:" << max << endl;
system("pause");
return 0;
}
运行结果
最重的小猪体重为:450
请按任意键继续. . .
案例二、数组元素的逆置
案例描述
请声明五个元素的数组,并且将元素逆置
(如原数组元素为:1,3,2,5,4);逆置后输出结果为:4,5,2,3,1);
代码如下
#include<iostream>
using namespace std;
int main()
{
/*
案例名:数组元素逆置
案例描述:请声明五个元素的数组,并且将元素逆置
(如原数组元素为:1,3,2,5,4);逆置后输出结果为:4,5,2,3,1);
*/
int arr[5] = { 1,5,2,4,3 };
cout << "数组逆置前的值为:"<<endl;
for (int i = 0; i < 5; i++)//逐个打印数组元素
{
cout << arr[i] << " ";
}
cout << endl;
//实现逆置
int start = 0;//起始元素下标
int end = sizeof(arr) / sizeof(arr[0]) - 1;//末尾元素下标
//start和end下标进行互换
//如果start<end,进行互换;如果start>end,不执行互换
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] << " ";
}
cout << endl;
system("pause");
return 0;
}
运行结果
数组逆置前的值为:
1 5 2 4 3
逆置后的数组为:
3 4 2 5 1
请按任意键继续. . .