MENU

C语言笔记——指针与指针函数

• March 23, 2018 • 编程语言

指针与指针函数

这是什么

指针我就不多说了,说说指针函数,那天看到C语言的书籍上面有这么个例子。

int (*compare)(int a, int b)
{
    //这里是函数内容
}

上述这个代码是什么呢?
我们将他拆开看,先是返回值类型为 int 型,然后声明了一个函数,函数地址为 compare 这就是指针函数。这个式子中,很明显是 表示一个函数的调用 ,有 两个整型形参 a和b,这里用到了 (*compare)说明 compare 是一个指针,而且是我们要调用的函数的指针,也就是这个函数的首地址。所以就间接的取到了函数地址并且调用了它。

指针的灵活用法

指针还有许多灵活的用法,比如你要定义一个函数,并且通过函数去修改变量的值,并保存下来,那么这个时候就最好用传指针参数的方式定义函数。因为形如 int compare(int a, int b) 这样的函数形参是可以传进去的,但是 这里的a和b是新声明的程序集变量,只能在这个函数内部调用,不会影响你main函数中传的值 ,所以在定义的时候就要定义为 int compare(int *a, int *b) 这样就是直接对地址修改,就直接能够改变传入的参数值。

使用指针应该恪守的原则

永远清楚你声明的每个指针指向什么位置;永远清楚每个指针指向的位置代表着什么或者存放有什么内容;永远不要使用未初始化的指针变量,对于初学指针的同学来说,每次声明的时候最好就直接初始化了。

字符指针的规律

刚刚说到数组和指针可以互换,各有优点。那么我们也可以声明字符串数组,同时也就有了字符串指针。并且有一下的规律:

char str[].....
&str[0]=&str
Archives QR Code
QR Code for this page
Tipping QR Code