黑马程序员---指向函数的指针与返回指针的函数
来源:互联网 发布:mac风扇一直转 编辑:程序博客网 时间:2024/05/27 20:51
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
使用例子1:
char *day(int n){ 返回的是成员的地址
指向函数的指针(函数指针变量)
c语言中,函数名就是该函数所占内存区的首地址。可以把函数的这个首地址赋予给一个指针变量,使该指针变量指向该函数。然后通过指针变量就可以找到并调用这个函数。
函数指针变量定义的一般形式为:
类型说明符(*指针变量名)(形参列表);
形参列表可以完全省略,只留空括号。
类型说明符为 被指函数的返回值的类型。最后的括号表示指针变量所知的是一个函数。
例如
int(*pt)();
使用例子1:
int max(int a,int b)
{
if(a>b) return a;
else return b;
}
main()
{
int max(int a,int b); 声明函数
int(*pmax)(); 定义pmax为函数指针变量
int x,y,z;
pmax=max; 函数指针变量赋值
scanf("%d%d",&x,&y);
z=(*pmax)(x,y); 用函数指针变量调用函数
调用形式为(*指针变量名)(形参列表)
printf("maxmun=%d",z);
}
使用例子2:使用函数指针变量将函数作为参数在函数间传递
#include <stdio.h>
// 减法运算函数
int minus(int a, int b) {
return a - b;
}
// 加法运算函数
int sum(int a, int b) {
return a + b;
}
这个counting函数是用来做a和b之间的计算,
至于做加法还是减法运算,由函数的第1个参数决定
void counting( int (*p)(int, int) , int a, int b) {
int result = p(a, b);
printf("计算结果为:%d\n", result);
}
int main()
{
// 进行加法运算
counting(sum, 6, 4);
// 进行减法运算
counting(minus, 6, 4);
return 0;
}
调用counting函数,把需要进行的运算函数的首地址传递给函数指针变量。之后再调用该运算函数。
返回指针的函数
指针型函数,返回值是一个指针的函数。
一般形式:
类型说明符*函数名(形参表)
使用例子:
#include <stdio.h>main()
{
int i;
char *day(int n); 定义返回指针的day函数
printf("请输入1-7数字:\n");
scanf("%d",&i);
printf("%s\n",day(i)); 调用day函数 并把i值传给形参n
指向地址改变
} char *name[]={"错误",
"周一",
"周二",
"周三",
"周四",
"周五",
"周六",
"周日",
};
return((n<1||n>7)?name[0]:name[n]);
}
返回指针的函数
0 0
- 黑马程序员---指向函数的指针与返回指针的函数
- 黑马程序员--IOS学习笔记(指针、返回指针的函数、指向函数的指针)
- 指向函数的指针与返回指针值的函数
- 14返回指针的函数与指向函数的指针
- 【C++】指向函数的指针与返回指针的函数
- 返回指针的函数与指向函数的指针
- 函数指针,返回指向函数的指针
- 返回指向函数的指针
- 函数返回指向函数的指针
- 函数指针、函数返回指针、const指针、指向const指针,指向const的const指针。
- C++函数指针指向一个返回函数指针的函数
- 黑马程序员--c语言指向函数的指针
- 指向函数的指针和 返回指针的函数
- 指向函数的指针和返回指针的函数
- 指向函数的指针 和 返回指针的函数
- 指向函数的指针/返回指针的函数
- 返回指针的函数&&指向函数的指针
- 黑马程序员-指针函数与函数指针的区别
- 面向对象笔记
- 使用PullToRefresh实现下拉刷新和上拉加载
- Dijkstra最短路径算法详解
- 双链表:实现基本的增删查改,正反向现实双链表的节点
- 垃圾回收机制与内存分配策略
- 黑马程序员---指向函数的指针与返回指针的函数
- 黑马程序员---c语言基础---数组、指针
- java学习笔记——static关键字
- Ruby On Rails 快速创建项目
- HDU 5344 多个数的和异或-思维-(位运算)
- 读 HTTP 协议
- iPhone开发入门系列1(iOS8+Swift版)天天打靶APP学习10-11
- springMVC各个包的详细说明
- 03-树2. List Leaves