关于函数指针

[复制链接]
查看11 | 回复2 | 2007-1-1 11:03:10 | 显示全部楼层 |阅读模式
使用int(*pmax)(); 事实上表述我们定义一个函数指针,它可以指向相同申明的函数,但是,pmax=max; 则是错误的,因为函数指针的申明和max不一致,也就是说该函数指针应该为:int (*pmax)(int,int);pmax = max;使用时可以象调用类似函数一样调用,即:z = pmax(a, b);一般不使用:z = (*pmax)(a, b);除非这是早期代码!尽量不要这样用,因为它已经不是标准用法。有时为了更好地使用函数指针,常常使用typedef,如:typedef int(*Pmax)(int, int);上面定义一个函数指针类型Pmax,这样Pmax就像普遍变量一样使用,如:Pmax ppmax; /* 象定义普通变量那些定义函数指针 */ppmax = max;z = ppmax(x, y);
回复

使用道具 举报

千问 | 2007-1-1 11:03:10 | 显示全部楼层
main() { int max(int a,int b); //定义个函数int(*pmax)(); //定义个函数指针int x=1,y=2,z; pmax=max; //把函数的入口地址赋值给函数指针z=(*pmax)(x,y); //(*pmax)其实是地址保存就是地址//z=pmax(x,y); //pmax也也函数入口地址printf(\"maxmum=%d\",z); }
回复

使用道具 举报

千问 | 2007-1-1 11:03:10 | 显示全部楼层
很简单.你既然pmax=max; 就说明了这两者是等价的,都是调用了这个函数.所以结果相同.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行