【C语言】函数、指针高级用法

2022-08-06 00:00 评论 0 条

inta=20;&a:是变量的指针(变量的地址)(指针就是地址,地址就是指针。

这里我们可以将c强制转换为函数指针的类型再代替f调用函数,但不能将b强制转换再使用,因为这里b是一个int型的变量,他只存储了偏移地址的数据而没有段地址的数据,如果转换成far指针会出错。

其示例如下:int*pfun(int,int);由于*的优先级低于()的优先级,因而pfun首先和后面的()结合,也就意味着,pfun是一个函数。

函数指针与指针函数区别通过以上的介绍,小伙伴应该都能理解二者的定义。

**注意:函数指针和指向函数的返回值的类型和参数都必须严格一致;**2\\.函数指针数组我们还可以声明一个函数指针的数组,比如:int(*pFuncArray10)();的优先级高于*,该语句将pFuncArray声明为拥有10个元素的数组,每一个元素都是指向一个函数的函数指针,该函数没有参数,返回值类型为int;注意不能写作:int((*pFuncArray)10)(),这样会产生编译错误;(*pFuncArray)10表明了pFuncArray是一个指针,该指针指向一个’含有10个元素的数组’;其类型为int()(),显然,编译不能通过。

其示例如下:int*pfun(int,int);由于*的优先级低于()的优先级,因而pfun首先和后面的()结合,也就意味着,pfun是一个函数。

代码示例typedefstruct_Data输出如下:(*fun)(1,2)=3(*fun)(5,2)=22上面说到的几种赋值和调用方式我都分别使用了,其输出结果是一样的。

pmax是一个函数指针,在前面加*就表示对它指向的函数进行调用。

在前面我们已经见过:int(*PF)(int*,int);也就是说,PF是一个函数指针**变量**。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:【C语言】函数、指针高级用法 | bwin客户端登录 – 最新官网app下载
分类:区块链 标签:

发表评论


表情