关于理解指针与函数
2015-12-11 15:21
211 查看
函数指针
函数也存在地址
函数也存在地址
#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; }
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程