nt testss()
{
printf("yesyesyes\n");
}
int main(int argc,char **argv)
{
testss();
(*testss)();
(***********testss)();
} 结果事都成功。 就是想问下函数地址的原理,我用随便多少个指针去寻址函数都能成功。
但像普通的这种
int main(int argc,char **argv)
{
int * a=1;
printf("%d",a);
printf("%d",*a);printf("%d",**a);//这一句就会报错。}其实我想知道的是,函数指针是怎么实现的。比如普通的指针存的是一个变量的地址,当访问这指针时就取的是这个地址的值。但函数指针如果存的是自己的地址,那么不管你用多少次*访问都应该事访问的是这个地址,而这地址所指向的指又是他自己那么就还是他自己,这就应该是个死循环。其实想知道函数指针的内存实现方法。像数组这种指针,他指针指向的值已是数组第一元素的地址,函数指针怎么就指向自己了啊。难道在该内存头部有指明该段内存类型的标识吗?就像每段内存头部都有指向下块可用内存或不可用内存的地址,该段内存大小的标识?