指针函数与函数指针
来源:互联网 发布:围巾 知乎 编辑:程序博客网 时间:2024/06/10 11:24
指针和地址
指针存储的是变量的内存地址。指针是有类型的,地址是没有类型的。
简单的说指针是有类型的地址。
地址告诉你内存地址从哪里开始,类型告诉你内存地址到哪里结束。
指针函数
返回指针的函数
声明形式
int *f(int a, int b);int* f(int a, int b);
f是函数名,返回值是一个int型的指针。
函数指针就是返回一个地址给调用者。
指针函数使用示例:
int *f(int a, int b); // 声明指针函数int _tmain(int argc, _TCHAR* argv[]){ printf("------------------------------ Start\n"); int *p1 = NULL; printf("The memeory address of p1 = 0x%x \n", p1); p1 = f(1, 2); printf("The memeory address of p1 = 0x%x \n", p1); printf("*p1 = %d \n", *p1); printf("------------------------------ End\n"); getchar(); return 0;}/* * 指针函数的定义 * 返回值是指针类型int * */int *f(int a, int b) { int *p = (int *)malloc(sizeof(int)); printf("The memeory address of p = 0x%x \n", p); memset(p, 0, sizeof(int)); *p = a + b; printf("*p = %d \n", *p); return p;}
函数指针
指向函数的指针
声明形式
int (*f) (int a, int b);
函数指针就是一个指针,但是这个指针指向的是函数,不是普通的基本数据类型或者类对象。
根据上面的函数指针声明,这个函数指针指向的是一个含有两个int类型参数并且返回int类型的函数。
书写特点:函数指针的函数名是一个指针形式。
函数指针使用示例:
/* * 求最大值 * 返回值是int类型,返回两个整数中较大的一个 */int max(int a, int b) { return a > b ? a : b;}/* * 求最小值 * 返回值是int类型,返回两个整数中较小的一个 */int min(int a, int b) { return a < b ? a : b;}int (*f)(int, int); // 声明函数指针,指向返回值类型为int,有两个参数类型都是int的函数int _tmain(int argc, _TCHAR* argv[]){ printf("------------------------------ Start\n"); f = max; // 函数指针f指向求最大值的函数max int c = (*f)(1, 2); printf("The max value is %d \n", c); f = min; // 函数指针f指向求最小值的函数min c = (*f)(1, 2); printf("The min value is %d \n", c); printf("------------------------------ End\n"); getchar(); return 0;}
参考
- 指针函数与函数指针
阅读全文
0 0
- 指针函数与函数指针
- 指针函数与函数指针
- 函数指针与指针函数
- 指针函数与函数指针
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针 与 指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 函数指针与指针函数
- 指针函数与函数指针
- Uva 10110
- [入门]N!中1的位置
- CListCtrl控件使用
- Maven项目开发____Java工程项目Pom的依赖
- Phonenix4.9 (添加二级索引,新版本本地索引表变更) hbase1.25的集成测试
- 指针函数与函数指针
- 嘿,要毕业的大学生该怎么办!
- SecureCRT部署java项目
- RecyclerView和ListView的异同
- Spring MVC+Maven 轻松实现上传文件功能
- C++ 硬件信息 获取CPU序列号
- 我所知道的.NET异步
- PL/SQL:FOR循环:打印2-200之间的素数
- 基于Baidu Map Marker的消息交互