指针进阶复习
int Add(int x, int y)
{
return x + y;
}
int main()
{
int* arr[10];
int* (*pa)[10] = &arr;
*pa pa前面加一颗星说明pa是指针 指向的是[10]说明指向数组有10个元素
pa指向数组arr的每个元素类型是int* 所以前面加上int*
函数指针
int(*paAdd)(int,int) = Add;
int sum = paAdd(1,2);
printf("%d\n", sum);
函数指针的数组
指向函数指针数组的指针
paaAdd先和*结合是指针,指向的是数组,有四个元素,
每个元素类型是int(*)(int,int)函数指针
return 0;
}
利用回调函数模拟冒泡排序
这是冒泡排序的具体代码
void Bubble_sort(int arr[], int sz)
{
int i = 0;
for (i = 0; i < sz - 1; i++)
{
int j = 0;
for (j = 0; j < sz - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
}
int main()
{
int arr[10] = {
9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
int sz = sizeof(arr) / sizeof(arr[0]);
Bubble_sort(arr, sz);
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", arr[i]);
}
return 0;
}
qsort库函数qsort的参数
void qsort(void* base,
size_t num,
size_t width,
int( *cmp)(const void *e1, const void *e2));
比较函数的特点
当e1 < e2的时候 会返回小于0的数字
当e1 = e2的时候 会返回一个0
当e1 > e2的时候 会返回一个大于0的数字
下面是如何使用qsort库函数的
排序整型的