函数指针与指针函数(C语言基础)

        单片机学久了,才发现C语言好多地方都不会哎,又得重新翻阅自资料,今天这不有新理解一个东西,分享一下,也作为自己的笔记。

指针:

大概说一下指针基础:指针变量,就是表示一个地址,直接打印这个指针变量,打印出来的就是十六进制的数,表示地址。*  号是取数据符号,可以取出地址里面的数据。&  是取址符,可以取出数据的地址。千万不要被定义指针变量的格式给搞混,定义指针变量就是一种格式(int  *b),就是表示b指针变量,不用去管  *  号,这是我混乱的原因。

函数指针与指针函数:

首先从字理解这个两个东西的作用:

int*  f(u8 x ,u8 y):指针函数:其实这本身就是一个函数,返回值是指针类型,就叫指针函数;

int  (*f)(u8 x,u8 y):函数指针:首先知道这个函数是一个指针,简单说就是一个可以指向函数的一个变量(但是这个变量是一个函数),当有同等类型的函数时就可以直接把这个函数名赋给这个函数指针f。

例子:其他阿函数类型必须和函数指针类一致(返回值类型一致,参数一致)

//加法函数
int add(u8 x ,u8 y)
{
   return  x+y;
}
//减法函数
int sub(u8 x ,u8 y)
{
   return  x-y;
}
//定义一个函数指针
int  (*f)(u8 x,u8 y);

int main()
{
    f=add;//直接把加法函数add赋值给f
    f=sub;//直接把减法函数add赋值给f
}

你可能感兴趣的:(博客,c语言)