数组是一种复合类型,声明形如a[x],a是数组名,x是数组维度。数组的特性是内存连续,类型相同,它的类型基本涵盖c++大部分类型,其数组名既是内存首地址又是数组标识符,而长度表达式要求是常量,这在形参作表达式时很关键。
int a[1];
一维数组一维数组是由数字组成的以单纯的排序结构排列的结构单一的数组。
一维数组是计算机程序中最基本的数组。
格式一维数组的的三种定义方式:
- 数据类型 数组名[数组长度]
- 数据类型 数组名[数组长度] = {值1, 值2, 值3}
- 数组类型 数组名[] = {值1, 值2, 值3…}数据类型 数组名[数组长度]int arr[5];arr[0] = 10;arr[1] = 20;arr[2] = 30;arr[3] = 40;// 访问数组元素cout << arr[0] << endl;cout << arr[0] << endl;
4.引用若 i, j均为int型变量,则a[i],a[j],a[i+j],a[i*j],a[j++]等都是合法元素。数组不可以一次引用一整个数组,如int a[100],b[100]; a=b;这是不合法的引用方式。若要将数组a每一个元素的值赋值给b数组的对应元素,可以利用循环。for(int i=0){b[i]=a[i];}
5.越界问题注意a[100]的下标为0-99,定义时最好定义大一些,通常比要用的多一个。使用负数,非整数或大于99的数字都会是数组越界。
二维数组名是指向数组的指针数组,与指向数组的指针数组的概念相似, 但指向数组的指针数组的数组名为指向数组的二级指针,而二维数组名是指向数组的指针。
(1)格式1. 数据类型 数组名[行数][列数]; - 数据类型 数组名[行数][列数] = {{数据1,数据2},{数据3, 数据4}}
- 数据类型 数组名[行数][列数] = {数据1, 数据2, 数据3, 数据4}
- 数据类型 数组名[][列数] = {数据1, 数据2, 数据3, 数据4}#includeusing namespace std;// time 系统时间头文件包含#includeint main()
(2)数据类型
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] << endl;
}
}
易错点:①数组定义时i,方括号中的数或者表达式代表数组元素的个数,
如:int a[10]; 表示数组有10个元素,这10个元素的下标是0到9,
引用的时候最大到9,但是定义时候一定要写为10
②方括号中的常量表达式可以是常量、常变量和符号常量,不能是变量。
不能根据输出的大小定义数组,数组在定义时,大小必须被指定
一.字符数组定义
字符串数组的定义与之前的数组相似,只是类型变为了char,其他规则都适用。
一维数组:char 函数名[行 常量表达式]
例如:char ch[5];
二维数组:char 函数名[列 常量表达式]
例如:char ch[2][12]
二.字符串变量
一个字符串数组包含若干个字符串,每个字符串可以看做为一个元素,
同时不要求字符串元素具有相同的长度
字符串类型(string)
C++中对于strinig的定义为:typedef basic_string string;
也就是说C++中的string类是一个泛型类,由模板而实例化的一个标准类,本质上不是一个标准数据类型.
字符串变量的定义
使用字符串变量使,首先在头文件加上:
#include ,否则会报错;
字符串变量的定义:string str1;可理解为相当于一个string类型
赋值:string str2= “China”;
输入输出:cin >> str1;
多维数组
三维数组常见的用法
1.冒泡排序:冒泡排序基本流程为:第一轮先是第一项与第二项,第二项和第三项…第n-1项与n比较,将大的一项排在后面的一项,这样就保证了最大一项可以到达最后,第二轮在挑出第二大的数,将其放在倒数第二位,这样一项项的将相对最大值挑出来,就完成了从小到大的排序,这种方法就是冒泡排序。
2.选择法排序:其基本思想与冒泡排序相同,不过更为直接,它是直接将最小或最大的值挑出来放在最前面,这样完成从小到大或者是从大到小的排序
3.sort函数:sort函数是一个给数组排序的通用方法,其中sort函数要使用algorithm头文件,其基本形式为:sort(a,a+5);即为a[0]–a[4]从小到大的排序,倘若要从大到小则方式为:sort(a,a+5,complare);sort函数中的a是数组,5是结束时的下标。总结:感觉自己学到知道只是冰山一角,题的解决方法太多了,并且也越来越复杂,解决起来也越来越困难,对c++的学习还不够深入,基础知识不够牢固,碰到稍微复杂的问题便无从下手,还有两周考试了,要用空闲的时间去加强对c++的学习,克服困难,耐心的去巩固知识,建立知识框架。
来源:CSDN
作者:qq_2019217154
链接:https://blog.csdn.net/qq_45790951/article/details/103689975