1.回调函数
回调函数就是一个通过函数指针调用的函数
如果你把函数的指针作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,被调用的函数就是回调函数。
回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。
将相似部分抽象成函数
2.qsort使用
qsort——排序函数(库函数,可以直接用来排序数据,底层用的是快速排序的方式)
qsort可以排序任意类型的数据
void* 是无具体类型的指针,这种类型的指针不能直接解引用,也不能进行+-的整数运算
qsort使用案例
结构体的比较案例
3.
3.sizeof和strlen的对比
3.1sizeof
sizeof是计算变量所占内存空间大小,单位是字节,如果操作数是类型的话,计算的是使用类型创建的变量所占内存空间的大小
sizeof只关注占用内存空间的大小,不在乎内存中存放什么数据
3.2strlen
strlen是C语言库函数,功能是求字符串长度
统计的是strlen函数的参数str中这个地址开始向后,\0之前的字符串中字符的个数。
strlen函数会一直想后找\0字符,直到找到为止,所以可能存在越界查找
3.3 sizeof和strlen对比
sizeof括号中有表达式的话,表达式不参与计算
4.试题解析
4.1.一堆数组
4.2.字符数组
4.2.1sizeof
4.2.2strlen
4.2.3字符串数组sizeof
4.2.4字符串数组strlen
4.2.5字符串sizeof
4.2.6字符串strlen
cahr* p = “abcdef”;//指针变量p有自己单独的地址空间
4.3二维数组
sizeof不会计算内容,所以存不存在没有关系
5.指针运算例题
5.1
#include <stdio.h>
int main() {
int a[5] = {1, 2, 3, 4, 5};
int *ptr = (int*)(&a + 1);
printf("%d,%d", *(a + 1)),*(ptr - 1);
return 0;
}
5.2