***
数组
知识总结
一维数组
定义:连续存放的同种变量的数据集合
格式:类型标识符 数组名[常量表达式]
(1.数组名的命名规则与变量名的命名规则一致
2.常量表达式表示数组元素的个数,可以是常量和符号常量,但不能是变量
3.数组元素过多时要用宏定义
4.cin>>n; int a[n];是错误的)
输入:利用for循环输入
引用:1.格式:数组名[下标]
2.下标可以是任意值为整形的表达式
3.下标不能越界
4.只能逐个引用,不能引用整个数组
5.下标从0开始
初始化:1.格式:
类型标识符 数组名[常量表达式]={值1,值2,…}
2.赋值数小于常量表达式时,从首元素开始依次初始化,其余为0
对数组全部初始化为0,可以写为a[n]={}
3.数组定义后初值是随机数
复制:1.memcoy(b,a,sizeof(int)*k)从数组a复制k个元素到数组b
2.memcpy(b,a,sizeof(double)*k)浮点型
3.memcpy(b,a,sizeof(a))把a全部元素复制到b
4.使用memcpy函数要包含头文件cstring
二维数组
定义:一维数组的元素也是一维数组,即数组的数组
格式:数据类型 数组名[常量表达式1][常量表达式2]
多维数组:数组的下标有多个
输入:双重循环输入
引用,初始化:与一维数组类似
注:二维数组可以看做一个矩阵a[行][列]
字符数组
定义:元素为字符的数组
数据类型:char
赋值:1.当赋值少于元素个数时值个数时,从首元素开始赋值,剩余元素默认为空
字符
2.字符数组可以存放字符串,字符串后有一个结束符’\0’
3.字符串长度应小于字符数组大小或等于字符数组大小
4.将一个数组的全部元素赋值于另一组时要用字符串拷贝函数
输入:1.scanf(“%s”,字符串名称)
注:scanf语句得到的字符串不存在空格,空格后是下一次输入的字符串
2.gets(字符串名称)
注:gets只能输入一个字符串,是从光标开始的地方读到换行符(包含空格)
3.cin.getlin()
注:输入超长时会引起cin函数的错误,后面的cin操作将不再执行
输出:1.printf(“%s”,字符串名称)
注:(1)输出只能是字符串,不能是数组元素
(2)不包括字符串结束标志”\0”
2.puts(字符串名称)
注:输出字符串和一个换行符
应用
1.两组数据之间的简单计算
2.一组数据排序
3.矩阵中的位置变换
4.矩阵中的数据变换
5.字符的位置变换
感想
学习数组之后对处理的数值也多了,题目不是很难,但要考虑的特殊情况多了,很多时候都考虑不到;二维数组对元素与位置对应的要求高了,做的时候也要保持清晰的思路;这一章的循环层次多了,要注意优化,不要超时;数组的定义尽量大点,在int main()前定义,数组越界很麻烦;还有好多特殊的函数没掌握,最近要加紧了!!!