模拟qsort实现冒泡排序
1.数组指针 数组指针是指针,指针指向数组,其内部保存的是数组的地址,只要是指针,就占4个字节。 比如: int arr[5]; //数组 int *parr1[10]; //指针数组 int (*parr2)[10];//数组指针 int (*parr3[10])[5]; //数组指针数组 解释:命名规则按照操作符的优先级来决定。 2.函数指针和定义 定义:函数指针是指向函数的指针变量。 用途:调用函数和做函数的参数 声明方法:返回值类型(*指针变量名)([形参列表]) 比如: #include <stdio.h> void test() { printf("hehe\n"); } int main() { printf("%p\n", test); printf("%p\n", &test); return 0; } 运行结果: 输出的是两个地址,这两个地址是 test 函数的地址。 那我们的函数的地址要想保存起来,怎么保存? 下面我们看代 码: void test() { printf("hehe\n"); } //下面pfun1和pfun2哪个有能力存放test函数的地址? void (*pfun1)(); void *pfun2(); 首先,能给存储地址,就要求pfun1或者pfun2是指针,那么答案就是:pfun1可以存放。pfun1先和*结合,说明pfun1是指针