指向函数的指针
c语言可以用指针变量指向一个函数。一个函数在编译时被分配了一个入口地址。这个函数的入口地址就称为函数的指针。我们用一个指针指向这个函数之后就可以通过该指针变量来调用此函数。
举一个简单的例子:
函数的指针一般用来降低程序的耦合性,也叫解耦,从而提高函数的复用性。
比如说:
我们调用标准裤头文件里的qsort函数时只需要输入三个参数并编写一个简单的比较函数,它就能帮我们完成任何数据类型任何方式的快速排序。
指针数组和指向指针的指针
一个数组,若其元素均为指针类型数据,称其为指针数组,也就是说,指针数组中的每一个元素就是一个指针变量。
一位指针数组的定义形式为
类型名 *数组名[数组长度];
例如:int *p[4];由于[]比*优先级高,因此p先于[4]结合,形成p[4]的形式,这是一个数组形式,有4个元素,然后在于p结合,*表示此数组是指针类型 的,每个数组元素都可以指向一个整型变量。
指针数组比较适用于指向若干个字符串,使字符串处理更加方便。
字符型数组可以写成**s或者*s[]。
常用程序举例:
遍历打印:
两个元素互换:
逆序:
选择排序:
二分查找:
指向指针数据的指针变量就是我们所说的指向指针的指针,这个指针变量指向的数据是一个地址,而这个地址指向了另一个变量,这种情况就是指向指针变量的指针。
注意数组就是一种特殊的指针,在特定的情况下指针和数组可以一概而论。