C函数指针

1. 函数指针和函数指针变量

在C语言中,一个函数总是占用一段连续的内存区,而函数名就是该函数所占内存区的首地址

所以说函数名也是一个指针,可以和数组名相对照起来。

我们可以把函数的这个首地址(或称入口地址)赋予一个指针变量,使该指针变量指向该函数——函数指针变量

2. 函数指针变量声明

类型说明符  (*指针变量名)();

如:int(*pFunc)( int a, int b );


3. 函数指针变量赋值

int Max( int a, int b )
{
	return a>b? a:b;
}

有多种赋值方式:

pFunc = Max;

pFunc = &Max;


4. 函数指针变量调用

Max函数的有2种调用方式:

int max  = Max(10, 20);

int  max = (*Max)(10, 20);


那么同理函数指针变量也有两种方式:

int max  = pFunc(10, 20);

int  max = (*pFunc)(10, 20);


所以说函数指针变量有4种使用方式:

	pFunc = Max;
	max = pFunc(10,20);
	printf("Max data is :%d\n", max);

	pFunc = Max;
	max = (*pFunc)(10,20);
	printf("Max data is :%d\n", max);

	pFunc = &Max;
	max = pFunc(10,20);
	printf("Max data is :%d\n", max);

	pFunc = &Max;
	max = (*pFunc)(10,20);
	printf("Max data is :%d\n", max);


5. typedef a function pointer

void MyFun(int x);    //此处的申明也可写成:void MyFun( int );
typedef void (*FunType)(int );   //这样只是定义一个函数指针类型
FunType FunP;              //然后用FunType类型来申明全局FunP变量

如果看不懂的话,对照一下:

typedef int* PINT;    //为int* 类型定义了一个PINT的别名
PINT pi = &a;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值