苏州网站建设培训,海外 酒店 网站建设,如何做网站网页费用,网站开发的认知数组 一维数组二维数组 数组的特点#xff1a; 放在一块连续的内存空间中数组中的每个元素都具有相同的数据类型
一维数组
一维数组的定义及初始化#xff1a;
int arr[3] {1, 2, 3}; // 定义了一个数组arr#xff0c;包含1、2、3三个元素int arr[3]; // 定义了一个数… 数组 一维数组二维数组 数组的特点 放在一块连续的内存空间中数组中的每个元素都具有相同的数据类型
一维数组
一维数组的定义及初始化
int arr[3] {1, 2, 3}; // 定义了一个数组arr包含1、2、3三个元素int arr[3]; // 定义了一个数组arr还未初始化若数组未进行初始化则一定要给定数组长度
arr[0] 1; // 给数组的第一个元素赋值初始化
arr[1] 2; // 给数组的第二个元素赋值
arr[2] 3; // 给数组的第三个元素赋值int arr[] {1, 2, 3}; // 定义了一个数组arr包含1、2、3三个元素编译器会自动计算数组元素个数即若数组进行了初始化可以不给定数组长度int arr[3] {1}; // 定义了一个数组arr第一个元素为1其他元素默认为0int arr[3] {}; // 定义了一个数组arr所有元素默认为0int arr[3] {1.89, 2, 3}; // 定义了一个数组arr包含1、2、3三个元素1.89会变成1最新的一些版本支持此操作int arr[3] {1, 2, 3}; // 定义了一个数组arr包含1、2、3三个元素最新的一些版本可以这么使用arr[3] {1, 2, 3}; // 错误没有定义数组类型array arr; // 错误静态数组不能赋值给另一个变量在通常情况下C将数组名解释为数组第一个元素的地址
#include iostream
using namespace std;int main(){int arr[3] {1, 2, 3};cout arr[0] endl;cout arr[1] endl;cout arr[2] endl;cout arr endl;system(pause);return 0;
}
---------
1
2
3
00000084716FF7F8一维数组名的作用
可以通过数组名统计整个数组占用的内存空间大小可以通过数组名查看数组的首地址
#include iostream
using namespace std;int main(){int arr[5] {1, 2, 3, 4, 5};cout 整个数组占用的内存空间大小为 sizeof(arr) endl; // 20cout 单个元素占用的内存空间大小为 sizeof(arr[0]) endl; // 4cout 数组的元素个数为 sizeof(arr) / sizeof(arr[0]) endl; // 5cout 数组的首地址为 int(arr) endl; // 地址一般用十六进制数表示可以使用int()将其转为十进制数cout 数组中第一个元素的地址为 int(arr[0]) endl; // 可以使用取地址符来获取数据的地址cout 数组中第二个元素的地址为 int(arr[1]) endl;cout 数组中第三个元素的地址为 int(arr[2]) endl;system(pause);return 0;
}
---------
整个数组占用的内存空间大小为20
单个元素占用的内存空间大小为4
数组的元素个数为5
数组的首地址为419231544
数组中第一个元素的地址为419231544
数组中第二个元素的地址为419231548
数组中第三个元素的地址为419231552C中有两种强制转换类型的格式
(type)value – 这种格式继承自C语言type(value) – 这种是纯粹的C格式目的是让强制类型转换看起来像是函数调用一样便于用户使用
数组名是常量不能用来赋值。
一维数组案例获取一维数组中的最大值
#include iostream
using namespace std;int main() {int arr[] { 200, 350, 300, 400, 100 };int max 0;for (int i 0; i 5; i) {if (arr[i] max) {max arr[i];}}cout 最大值为 max endl;system(pause);return 0;
}
---------
最大值为400一维数组案例数组元素逆置
#include iostream
using namespace std;int main() {int arr[] { 1, 3, 2, 5, 4 };int start 0;int end sizeof(arr) / sizeof(arr[0]) - 1;int temp;while (start end) {temp arr[start];arr[start] arr[end];arr[end] temp;start;end--;}for (int i 0; i sizeof(arr) / sizeof(arr[0]); i) {cout arr[i] ;}system(pause);return 0;
}
---------
4 5 2 3 1一维数组案例冒泡排序
/*
冒泡排序是最常用的排序算法对数组内元素进行排序主要步骤如下
1. 比较相邻的元素如果第一个元素比第二个元素大就交换它们
2. 对每一对相邻元素做同样的比较工作一轮执行完毕后最后一个就是最大值
3. 删掉最后的最大值重复以上步骤每次比较次数-1直到不需要比较
*/#include iostream
using namespace std;int main() {int arr[] { 4, 2, 8, 0, 5, 7, 1, 3, 9 };for (int i 0; i sizeof(arr) / sizeof(arr[0]) - 1; i) {for (int j 0; j sizeof(arr) / sizeof(arr[0]) - 1 - i; j) {if (arr[j] arr[j1]) {int temp arr[j];arr[j] arr[j1];arr[j1] temp;}}}for (int i 0; i sizeof(arr) / sizeof(arr[0]); i) {cout arr[i] ;}system(pause);return 0;
}
---------
0 1 2 3 4 5 7 8 9二维数组
二维数组的定义和使用
/*
数据类型 数组名[行数][列数] {{ele1, ele2}, {ele3, ele4}}; // 最直观可读性最好
数据类型 数组名[行数][列数] {ele1, ele2, ele3, ele4};
数据类型 数组名[行数][] {{ele1, ele2}, {ele3, ele4}};
数据类型 数组名[][列数] {{ele1, ele2}, {ele3, ele4}};
*/#include iostream
using namespace std;int main(){int arr[2][3] {{1, 2, 3}, {4, 5, 6}};cout arr[0][0] endl;cout arr[0][1] endl;cout arr[0][2] endl;cout arr[1][0] endl;cout arr[1][1] endl;cout arr[1][2] endl;system(pause);return 0;
}
---------
1
2
3
4
5
6二维数组名的作用
查看二维数组所占的内存空间大小获取二维数组的首地址
#include iostream
using namespace std;int main(){int arr[2][3] {{1, 2, 3}, {4, 5, 6}};cout 整个二维数组占用的内存空间大小为 sizeof(arr) endl; // 24cout 二维数组中一行占用的内存空间大小为 sizeof(arr[0]) endl; // 12cout 二维数组中单个元素占用的内存空间大小为 sizeof(arr[0][0]) endl; // 4cout 二维数组的行数为 sizeof(arr) / sizeof(arr[0]) endl; // 2cout 二维数组的列数为 sizeof(arr[0]) / sizeof(arr[0][0]) endl; // 3cout 二维数组的元素个数为 sizeof(arr) / sizeof(arr[0][0]) endl; // 6cout 二维数组的首地址为 int(arr) endl; // 获取数组的首地址cout 二维数组中第一行的首地址为 int(arr[0]) endl; // 获取一行的首地址cout 二维数组中第一个元素的地址为 int(arr[0][0]) endl; // 使用取地址符来获取数据的地址system(pause);return 0;
}
---------
整个二维数组占用的内存空间大小为24
二维数组中一行占用的内存空间大小为12
二维数组中单个元素占用的内存空间大小为4
二维数组的行数为2
二维数组的列数为3
数组的元素个数为6
二维数组的首地址为1483732280
二维数组中第一行的首地址为1483732280
二维数组中第一个元素的地址为1483732280二维数组的案例输出各位同学的总成绩
/*语文 数学 英语
张三 100 100 100
李四 90 50 100
王五 60 70 80
*/#include iostreamint main(){int arr[3][3] {{100, 100, 100},{90, 50, 100},{60, 70, 80}};int count 0;for(int i 0; i sizeof(arr) / sizeof(arr[0]); i){int total_score 0;for(int j 0; j sizeof(arr[0]) / sizeof(arr[0][0]); j){total_score arr[i][j];}count;if(count 1){std::cout 张三的总成绩为 total_score std::endl;}if(count 2){std::cout 李四的总成绩为 total_score std::endl;}if(count 3){std::cout 王五的总成绩为 total_score std::endl;}}system(pause);return 0;
}
---------
张三的总成绩为300
李四的总成绩为240
王五的总成绩为210C风格字符串
char cat[9] {m, i, n, , a, p, p, l, e}; // 这不是一个字符串
char cats[10] {m, i, n, , a, p, p, l, e, \0}; // 这是一个字符串C风格字符串具有一种特殊的性质以空字符结尾即\0其ASCII码为0用来标记字符串的结尾。 为了简化以上数组初始化为字符串可以用以下方法用引号括起的字符串隐式地包括结尾的空字符
char cats[10] min apple; // \0被默认添加
char fish[] Bubbles; // 编译器自动计数