数组的学习从以下三个方面
- 数组的定义:有序的、类型相同的数据集合。
- 数组的初始化
- 数组的访问方法
注意:学习其它数据类型也一样,从以上三个方面去学习。
数组类型
1.一维数组
存储类型 数据类型 数组名[数组长度];
int arry[3] = {1,2,3};//数组定义和初始化
或者
int arry[3] = {0};
arry[0] = 1;
arry[1] = 2;
arry[2] = 3;
//一维数组的访问
for(i = 0;i<3;i++)
{
printf("%d",arry[i]);
}
2.多维数组
这里介绍最常用的数组——二维数组
数据类型 数组名[常量表达式1][常量表达式2]
//二维数组的初始化有4种方式
int temp[4][3]=={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
...
二维数组的访问
temp[1][3] = 7;//通过行列下标访问
特别注意字符串数组
1.内存中存储方式
eg.字符串“welcome”,一个单元存储一个字符,最后一位填充‘\0’.
//定义和初始化
char str[10] = “hello”;
二位字符串定义
//可以用于多用户的存储
char buf[2][10] = {"abc","bcd"}
//可以存储两个用户、长度为10
字符串处理函数
strcmp() | strcat() | strchr() | strstr() | strlen() |
---|---|---|---|---|
比较两个字符串 | 字符串拼接 | 判断某个字符是否在字符串中出现 | 匹配某个字符子串是否在某个字符串中出现 (可以用于模糊查询) | 计算字符串的长度 |
总结一下数组中需要注意的一些点
- 数组中的数组名代表数组的首地址、通过&arry[i]或者arry + 1(表示下一个单元格的地址)都可以取得数组中数据的地址。
- 2048项目中随机数的生成
srand(time(0));//产生随机数种子
xpos = rand() % 4;
ypos = rand() % 4;//随机获取16宫格的横纵坐标
- 清屏
system("cls");
遇到问题
随机数的获取方法最开始没怎么搞懂,还有一点就是2048项目中将getch();有一个特别大的坑,getch();获取字符串时相当于先获取字符然后自动补上一个回车。还有就是在控制数字英文的输出过程中特别注意全角和半角输入,这个点坑了我好久。
解决方法
对于随机数获取在老师的引导下慢慢地理解了随机数产生的过程,至于getch();这个函数还是得更多地去理解,对于全角半角问题,这个主要是在同学的指点下搞通了,这个是我以后会特别关注的点了。
心得体会
本节课内容就明显感觉有一点多了,这就更加需要花多一点时间去巩固和练习了,不过课上面讲的内容还是都理解了。作业也都会做,可是要用到项目中去的话感觉还是有一点点吃力,这就需要更多的代码去练习了。