本周主要复习了前三周的学习内容,对之前老师发的代码以及实验中用到的代码进行了仔细地分析、学习
前三周学习总结链接:
第九周:http://www.cnblogs.com/20144303sys/p/6059849.html#3560005
第十周:http://www.cnblogs.com/20144303sys/p/6081667.html#3563088
第十一周:http://www.cnblogs.com/20144303sys/p/6107107.html
一、指针数组与数组指针:
1、指针数组:即用于存储指针的数组,也就是数组元素都是指针
形式如:int *p[n]表示定义有n个指针分别为:p[0]、p[1]、...、p[n-1]2、数组指针:即指向数组的指针,指针指向一个类型和元素个数都固定的数组
形式如:int (*p)[n]表示定义一个指向一个数组的指针p二、指针函数与函数指针:
1、指针函数:即返回值是指针类型的函数
形式如:void *comp()表示comp为有关指针的一个函数2、函数指针:即指向函数的指针,函数名就是函数指针
形式如:void (*comp)()表示comp为一个指向函数的指针三、区别方法——右左右左法:
具体方法:
从变量名开始,先右再左地,交替地一个一个向外看,在纸上写下:“变量是”若向右遇到左圆括号,在纸上写下:“函数,参数是”,并用同样的方法处理括号中每一个参数——在纸上写下:“返回”若向右遇到方括号,在纸上写下:“数组,长度为{方括号的内容},元素类型为”若向右遇到右圆括号,什么也不做若向左遇到*,在纸上写下:“指针,指向”若向左遇到任何类型,在纸上写下对应的类型名举例说明:分析void ((*fp1)(int))[10]
从fp1开始——fp1是向右,遇到右括号,什么也不做向左,遇到*——指针,指向向右,遇到左圆括号——函数,参数是int,返回向左,遇到*——指针,指向向右,遇到左方括号——数组,长度为10,元素类型为向左,遇到*——指针,指向向右,已经到声明结尾,什么也不做向左,遇到void——void结果是:fp1是 指针,指向 函数,参数是int,返回指针,指向数组,长度为10,元素类型为 指针,指向 void四、信号处理:
信号:是UNIX中所使用的进程通信的一种最古老的方法;是在软件层次上对中断机制的一种模拟,用于通知进程有某事件发生,一个进程收到一个信号与处理器收到一个中断请求效果上可以说是一样的。
使用kill -l来查看有关信号的信息使用stty -a来查看快捷键的用法SIG_IGN是忽略信号的处理程序,表示无返回值的函数指针,指针值为1SIG_DFL是默认信号的处理程序,表示无返回值的函数指针,指针值为0五、信号的产生:
用户产生:比如通过键盘输入硬件产生进程发送内核产生:比如设定的闹钟,超时会产生SIGALRM信号六、信号处理函数:
signal:不知道信号被发送的原因;信号处理过程中不能安全地阻塞其他信号。sigaction:在信号处理程序被调用时,系统建立的新信号屏蔽字会自动包括正被递送的信号;保证了在处理一个给定的信号时,若这种信号再次发生,那么它会被阻塞到对前一个信号的处理结束为止响应函数设置后便会一直有效,不会重置。这周主要复习了之前学习的内容,在复习的过程中,发现了很多自己之前学习时没有发现的问题。这暴露了我在学习的时候还是存在一些问题,学习不够认真仔细。通过这周的复习巩固,加深了对知识的理解认识,也起到了查缺补漏的作用。
转载于:https://www.cnblogs.com/20144303sys/p/6132037.html
