目录
回调函数
如果你把函数的指针(地址)作为参数传递给另⼀个函数,当这个指针被⽤来调⽤其所指向的函数
时,被调⽤的函数就是回调函数
回调函数在指针3的转移表我们就用到了回调函数
回调函数是就一个函数
下面在代码我们可以看到,把add函数的地址传给了p函数,p用函数指针接收命名为x,
然后可以通过x把a和b的数值传过去给add,然后返回值给 r 然后打印
x里存放的是add函数的地址
这就是一个回调函数
qsort函数
下面是冒泡排序,冒泡排序只能排序整形,无法排序浮点和字符还有结构体,我们就
需要用到qsort函数来进行排序
//冒泡排序
void add(int arr[], int sz)
{
for (int i = 0; i < sz-1; i++)
{
for (int j = 0; j < sz - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int r = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = r;
}
}
}
}
int main()
{
int arr[] = { 2,4,6,8,10,1,3,5,7,9 };
int sz = sizeof(arr) / sizeof(arr[0]);
add(arr, sz);
for (int i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
}
qsort函数的使用
qsort函数我们需要传4个参数(指向数组第1个元素的指针(首元素),元素个数值,元素类型大小,比较函数)
比较函数的参数为什么使用void*类型呢,因为void*可以接收全部参数,,但是比较数值必须要强制类型转换。
比较这2个数值的时候,(第1个值比第2个值大就返回大于