小弟近日复习 函数指标,发现以前学的不够彻底(汗颜...)
GOOGLE了一下
如 http://www.programmer-club.com.tw/ShowSameTitleN/c/25059.html
以下借用之前的文章 恳请赐教 谢谢
※ 引述《ohya0524 (欧爷)》之铭言:
: 标题: [问题] 函数指标
: 时间: Thu Dec 29 22:04:46 2011
:
: 开发平台(Platform): C
:
:
: 问题(Question):
:
: 为啥四种写法都对呢?
: (某两行可以决定是否用注解替换)
:
: 程式码(Code):(请善用置底文网页, 记得排版)
:
: #include<stdio.h>
:
: int max(int x,int y){ return (x>y?x:y); }
:
: int main()
: {
: int (*fptr)(int,int);
: int a,b;
:
: fptr=max; //fptr=&max;
1. 自动转型! 请问是什么type自动转型成什么type?
想法:
max 自动转型成pointer
也就是说compiler 做了fptr=(int(*)(int,int))max;
2.是吗?
: scanf("%d %d",&a,&b);
: printf("max=%d",fptr(a,b)); //(*fptr)(a,b)
我知道fptr跟(*fptr)的prinf出来的内容是一样,
3.请问他们的type是否一样?
4.这里有哪一个也是自动转型吗?
: return 0;
: }
:
:
: 补充说明(Supplement):
:
: 我的疑问...
: fptr是个指标
: 那max不是应该用取址符号&取出位址吗?
:
: