当前位置:网站首页>c(指针-02)

c(指针-02)

2022-06-10 18:16:00 缘友一世

每天进步一点,进步一点!!感谢自己

在这里插入图片描述

1
(* ( void(*)() ) 0 )
//void(*)()-函数指针类型
//把0强制类型转换成:void(*)() 函数指针类型 -0就是一个函数的地址
2
void(* signal( int ,  void(*)(int) )  )(int)
//简化方法
typedef void(* pfun_t)(int);
pfun_t signal(int,pfun_t);
//signal是一个函数声明
//signal函数的参数有2个,第一个是int,第二个是函数指针,该函数指针指向的参数是Int,返回类型是void
//signal函数的返回类型也是一个指针,该指针指向的函数参数是int,返回类型是void

在这里插入图片描述

🪬🪬函数指针数组用途:转移表

int Add(int x,int y)
{
    
	int z=x+y;
	return z;
}
int main()
{
    
	int a=10;
	int b=10;
	int(*pa)(int,int)=Add;
	printf("%d\n",pa(2,3));
	printf("%d\n",Add(2,3));

	printf("%d\n",(*pa)(2,3));
	return 0;
}
int Add(int x,int y)
{
    
	return x+y;
}
int Sub(int x,int y)
{
    
	return x-y;
}
int Mul(int x,int y);
{
    
	return x*y;
}
int Div(int x,int y)
{
    
	return x/y;
}
int main()
{
    
	int *arr[4];
	int(*parr[4])(int ,int)={
    Add,Sub,Mul,Div};
	//函数指针的数组
	int(*pArr[5])(int ,int);
	//指向函数指针数组的指针
	int(*(PPArr)[5](int,int))=&pArr;
	return 0;
}

练习

char* my_strcpy(cahr* dest,const char* src);
//1写一个函数指针Pf,能够指向my_strcy
char*(*pf)(char*,const char*);
//2写一个函数指针数组pfArr,能够存放4个my_strcy函数的地址
cha*(*pfarr[4])(cahr*,const char*);

回调函数:
回调函数就是一个通过函数指针调用的函数,如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时有另外的一方调用的,用于对该事件或条件进行相应。

原网站

版权声明
本文为[缘友一世]所创,转载请带上原文链接,感谢
https://blog.csdn.net/yang2330648064/article/details/124876065