网络编程学习

思维导图

知识点回顾

1、什么是回调函数

作为其他函数参数的函数。

2、结构体与共用体的区别

结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员。结构体占用的内存大于等于所有成员占用的内存的总和(需要满足字节对齐原则),共用体占用的内存等于最长的成员占用的内存。

3、赋值与初始化的不同

赋值不会对内存空间进行修改,初始化会在系统分配内存。

4、局部变量与全局变量是否能重名

可以重名,修改局部变量不会改变全局变脸,局部会屏蔽全局。要用全局变量,需要使用extern调用,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。对于有些编译器而言,在同一个函数内可以定义多个同名的局部变量,比如在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内。

5、形参与实参的区别

1>形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。

2> 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。

6、 数组与指针的区别

数组:数组是用于储存多个相同类型数据的集合。数据类型是构造类型

指针:指针相当于一个变量,但是它和不同变量不一样,它存放的是其它变量在内存中的地址。数据类型是指针类型。

7、void指针是空指针吗?有何作用?

空指针是(void *)0,而void指针是通用类型指针,可以指向任意数据类型,需要强转。

8、简述快速排序的思想

通过一趟排序将待排序的序列分割为左右两个子序列,左边的子序列中所有数据都比右边子序列中的数据小,然后对左右两个子序列继续进行排序,直到整个序列有序。

9、什么是野指针,如何避免野指针

野指针指未初始化的指针,通过数组越界访问的指针以及指向被释放地址的指针。当指针没有初始化的时候将指针指向NULL,给指针赋值时检查是否分配内存空间,当不再使用指针后再使用free函数。

10、网络7层体系结构

物理层,数据链路层,网络层,运输层,会话层,表示层,应用层。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>