函数指针的问题
关于函数指针的问题,不明白下面2个程序为什么执行的结果是一样的?
程序1:
[code=C]/C++
#include<stdio.h>
int max(int x,int y){ return(x>y?x:y); }
int main()
{
int (*ptr)(int, int);
int a,b,c;
ptr=max;
scanf("%d%d",&a,&b);
c=(*ptr)(a,b); //就这行和下面的程序不一致。
printf("a=%d,b=%d,max=%d",a,b,c);
return 0;
}
[/code]
关于函数指针的问题,不明白为什么执行的结果是一样的?
程序2:
[code=C]/C++
#include<stdio.h>
int max(int x,int y){ return(x>y?x:y); }
int main()
{
int (*ptr)(int, int);
int a,b,c;
ptr=max;
scanf("%d%d",&a,&b);
c=ptr(a,b);
printf("a=%d,b=%d,max=%d",a,b,c);
return 0;
}
[/code]
为什么上面2个程序执行的结果是一样的?我在程序里面print ptr 和 *ptr ,这2个的值是一样的,请问这边是*的作用是什么?解引用吗?
谢谢各位了!