成品超市网站,公司网站运营,做信息浏览的网站策划案,网站降权怎么处理思维导图 整理面试题
1、什么是回调函数
答#xff1a;将函数作为参数传到另一个函数里面#xff0c;当那个函数执行完之后#xff0c;再执行传进去的这个函数。这个过程就叫做回调。
2、结构体和共用体的区别
答#xff1a;结构体的每个成员都会分配内存#xff0c;…思维导图 整理面试题
1、什么是回调函数
答将函数作为参数传到另一个函数里面当那个函数执行完之后再执行传进去的这个函数。这个过程就叫做回调。
2、结构体和共用体的区别
答结构体的每个成员都会分配内存大小又各个成员的内存之和但要满足字节对齐原则
共用体的内存以占字节数最大的成员为主
3、赋值与初始化有什么不同
答初始化是从无到有的过程先分配空间然后再填充数据赋值是对己有的对象进行操作。 对于基本数据类型二者是没有任何区别对于非基本数据类型在写法与效率上有许多不同。
4、局部变量和全局变量能否重名
答能局部会屏蔽全局。要用全局变量需要使用::局部变量可以与全局变量同名在函数内引用这个变量时会用到同名的局部变量而不会用到全局变量。对于有些编译器而言在同一个函数内可以定义多个同名的局部变量比如在两个循环体内都定义一个同名的局部变量而那个局部变量的作用域就在那个循环体
5、形参和实参有什么区别
答形参Formal Parameter是函数定义时声明的参数它是函数内部的局部变量。形参在函数定义时指定了参数的类型和名称用于接收函数调用时传递的实参的值。
实参Actual Argument是函数调用时传递给函数的值或变量。实参可以是常量、变量、表达式或者其他函数的返回值。实参的值会被传递给对应的形参从而在函数内部进行处理。
形参和实参之间的区别主要有以下几点
1定义位置形参是在函数定义时声明的位于函数的参数列表中实参是在函数调用时传递的位于函数名后面的括号中。 2数据类型形参可以指定具体的数据类型用于接收相应类型的实参实参可以是任意合法的表达式或变量。 3值传递实参的值会被传递给对应的形参形成一次值传递。在函数内部对形参进行修改不会影响到实参的值。
4作用范围形参只在函数内部有效超出函数范围后就无法访问实参在函数调用时生效可以在函数内部使用。
6、数组与指针的区别是什么
答指针的大小是固定的数组的大小是根据申请时数据类型和元素个数决定的
数组名表示的是首元素地址从功能上等同于一个地址数组是构造数据类型指针是指针类型
7、void指针就是空指针吗它有什么作用
答空指针是void*0,void指针是万能指针可以执行任意类型的地址
void的指针不能直接解引用必须先转换为具体的指针后再使用
8、简述快速排序的思想
答快速排序是一种常用的排序算法它的基思想是通过一趟排序将待排序的数据分割成独立的两部分其中一部分的所有数据都比另一部分的所有数据小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列的目的。
具体的快速排序算法步骤如下
1.选择一个基准元素通常选择第一个元素。 2.将序列中所有比基准元素小的元素移到基准元素的左边将序列中所有比基准元素大的元素移到基准元素的右边。 3.对基准元素的左右两个子序列重复步骤1和步骤2直到每个子序列只有一个元素。
快速排序的关键在于划分操作即如何将序列中的元素按照基准元素进行划分。常用的划分方法是使用双指针法即设置一个左指针和一个右指针左指针从序列的左边开始向右移动右指针从序列的右边开始向左移动当左指针指向的元素大于基准元素且右指针指向的元素小于基准元素时交换左右指针指向的元素直到左指针和右指针相遇此时将基准元素与左指针指向的元素进行交换。
快速排序的时间复杂度为O(nlogn)其中n为待排序序列的长度。它是一种原地排序算法不需要额外的存储空间。
9、什么是野指针怎么避免野指针?
答野指针即非法访问
①未初始化的指针②释放堆区空间后指针没有指向NULL③越界访问数组的指针④指向一个空间后空间被释放的指针
避免野指针①初始化指针②防止指针越界访问数组③防止指针指向一个被释放的空间④使用指针之前检查有效性
10、网络7层体系结构
答①物理层②数据链路层③网络层④传输层⑤会话层⑥表示层⑦应用层