根据上图代码可以看到两行输出语句内容不同,一个没加取值运算符,一个加了取值运算符!
上图可以看出输出结果是一样的,
根据测试,不加星号与加星号与加N个星号不但不报错而切执行结果都是一样的。
然而普通指针一旦星号加多了就报错,编译不出结果,
请问这是函数指针的特性吗?
请前辈给一个详细真实且合理的回答!
函数指针调用函数是不需要解引用, 但不是不可以解引用
对于函数指针而言,解引用操作,还是这个变量的值。。。依然是个地址
所以可以加很多个*进行解引用(***_t.function)();也是OK的
你说的是对的,对函数取值还是函数
这里看的很清楚。
函数指针是很特殊的,取地址与不取地址效果都一样,楼主完全可以改成下面这种样子,也是可以的
_t.function = *fun;
_t.function = fun;