20145221 《信息安全系统设计基础》第12周学习总结
20145221 《信息安全系统设计基础》第12周学习总结
前3周博客汇总
C语言相关概念界定
指针数组
- 本质:数组
- 定义:数组元素全为指针的数组称为指针数组。
- 举例:
int *p[10]
数组指针
- 本质:指针
- 定义:数组名的指针,即数组首元素地址的指针。即是指向数组的指针。
- 举例:
int (*p)[10]
指针函数
- 本质:函数
- 定义:是一个函数,只不过这个函数的返回值是一个地址值。
- 举例:
int *fun(int)
函数指针
判断识别:左右规则
- 首先从未定义的标识符开始阅读,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。
小试牛刀
int (*func) (int *p);
- 首先找到未定义标识符,就是
func
,它的外面有一对圆括号,而且左边是一个*
,这说明func是一个指针。然后跳出括号,看右边,也是一个括号,这说明(*func)
是一个函数,而func
是一个指向这类函数的指针,也就是一个函数指针。这类函数具有int*
类型的参数,返回值类型是int
int (*func)(int *p, int (*f)(int *));
func
被一对括号包含,且左边有一个*
号,说明func
是一个指针,然后跳出这个圆括号,先看右边,也是一个圆括号,说明func
是一个函数指针。这类函数具有int *
和int (*)(int *)
这样的形参,返回值是int
。对于int (*f)(int *)
的形参,分析方法跟func
是一致的。
int (*func[5])(int *p);
- func右边是一个
[]
运算符,说明func是一个具有5个元素的数组,func的左边有一个*
,说明func的元素是指针,要注意这里的*
不是修饰fun的,而是修饰func[5]
的,原因是[]运算符的优先级比*
高,func先跟[]
结合,因此*
修饰的是func[5]
.跳出这个括号,看右边,也是一对圆括号,说明func
数组的元素是函数类型的指针,它指向的函数具有int*
类型的形参,返回值类型是int
int (*(*func)[5])(int *p);
- func被一对圆括号包围,左边又有一个
*
,那么func是一个指针,跳出括号,右边是一个[]运算符号,说明func是一个指向数组的指针,现在往左看,左边有一个*
号,说明这个数组的元素是指针,再跳出括号,向右看,右边又有一个括号,说明这个数组的元素是指向函数的指针。
- 总结一下就是:func是一个指向数组的指针,这个数组的元素是函数指针,这些指针具有
int *
形参,返回值为int类型的函数
int (*(*func)(int *p))[5];
- func是一个函数指针,这类函数具有int *类型的形参,返回值是指向数组的指针,所指向的是具有5个int类型元素的数组。
其他(感悟、思考等,可选)
- 这周是对前几周的总结,发现了还是有很多地方学的很模糊,但这次对于指针数组、数组指针、指针函数和函数指针这几个概念还是基本弄清楚了。虽然我们可能不会亲自编写到如此复杂的声明,但是我个人觉得还是有必要掌握的。这对我们阅读程序以及相关帮助手册都有很大帮助。
学习进度条
|
代码行数(新增/累积) |
博客量(新增/累积) |
学习时间(新增/累积) |
重要成长 |
目标 |
5000行 |
30篇 |
400小时 |
|
第一周 |
200/200 |
2/2 |
20/20 |
学习了Linux常用命令 |
第二周 |
79/279 |
1/3 |
30/50 |
了解vim,gcc,gdb基本操作 |
第三周 |
182/461 |
1/4 |
25/75 |
更深层次了解信息处理 |
第四周 |
36/497 |
2/6 |
3/78 |
第二章知识简单的运用 |
第五周 |
194/691 |
1/7 |
28/106 |
汇编知识与了解逆向 |
第六周 |
520/1211 |
1/8 |
27/133 |
Y86处理器,了解ISA抽象 |
第七周 |
85/1296 |
1/9 |
21/153 |
理解了局部性原理 |
第八周 |
0/1296 |
2/11 |
20/173 |
期中总结 |
第九周 |
234/1530 |
2/13 |
30/203 |
了解Linux是怎样操作文件 |
第十周 |
453/1983 |
2/15 |
20/223 |
系统调用深入实践 |
第十一周 |
1097/3080 |
3/18 |
26/249 |
理解进程和并发,了解异常及其种类 |
第十二周 |
0/3080 |
3/18 |
20/269 |
复习巩固加深 |
参考资料
原文地址:https://www.cnblogs.com/20145221GQ/p/6131844.html