首页 > 其他 > 详细

关于理解指针与函数

时间:2015-12-11 16:39:45      阅读:230      评论:0      收藏:0      [点我收藏+]

函数指针

函数也存在地址

#include<stdio.h>

void fun()
{
prinft("fun");
}

int main()
{
prinft("fun=%p\n",&fun);
printf("fun=%p\n",fun);//输出两地址相同

fun();
(*fun)();//均输出“fun”,即均调用了函数,此时fun为函数指针
}

在函数中函数名和对函数取地址得到相同结果

int add(int a,int b)
{
return a+b;
}
int main()
{
int (*pfun)(int,int)=add;//根据函数来定义函数指针
int ret=(*pfun)(1,2);
//不能写成int ret=*pfun(1,2);,因为编译器会以为要解引用其返回
printf("%d",ret);

return 0;
}

int add(int a,int b)
{
return a+b;
}
int sub(int a,int b)
{
return a-b;
}
int operation(int (*pfun)(int ,int))
{
    int num1=0;
    int num2=0;
    scanf("%d%d",&num1.&num2);
    return pfun(num1,num2);
}
int main()
{
    int ret=operation(sub);//执行减法,传人add执行加法
    printf("%d",ret);
    return 0;

}

对应函数指针的数组

int fun(char *s,const char*c)
{
}
int fun1(char *s,const char*c)
{
}
int fun2(char *s,const char*c)
{
}
int main()
{
int (*pfun[4])(char *,const char *);//数组中每一个元素都是一个函数
pfun[0]=fun;
pfun[1]=fun1;
pfun[2]=fun2;
}


本文出自 “无以伦比的暖阳” 博客,请务必保留此出处http://10797127.blog.51cto.com/10787127/1722050

关于理解指针与函数

原文:http://10797127.blog.51cto.com/10787127/1722050

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!