黑马程序员——c语言基础:指针函数和函数指针
来源:互联网 发布:文字录入赚钱软件 编辑:程序博客网 时间:2024/05/01 21:57
1.指针函数
指针函数:返回值是指针的函数。
指针函数的定义:
指针函数类型 *函数名(){
return地址;
}
实例1:用指针函数输出两个数中大数的地址。
#include <stdio.h>
int *bigAdress(int *a,int *b){
return *a > *b ? a : b;
}
int main(int argc,const char * argv[]) {
//定义并初始化两变量
int a = 23;
int b = 89;
// 输出a,b的地址
printf("&a = %p\n&b = %p\n",&a,&b);
//用指针函数找出大数的地址并输出
printf("大数地址为:\n%p",bigAdress(&a,&b));
return 0;
}
实例2:通过指针函数,输入一个1~7之间的整数,输出对应的星期名。
#include <stdio.h>
char *printDay(int n){
//定义一个字符串指针数组
char *week[7] = {"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
return n > 0 && n <8 ? week[n - 1] :"输入错误!";
}
int main(int argc,const char * argv[]) {
//根据输入的整数输出对应星期名
printf("%s",printDay(7));
return 0;
}
实例3:用指针变量作为函数的参数,求出10个数的最大值。
#include <stdio.h>
/**
* 找出数组中的最大值
*
* @param a 传入的数组
* @param len 数组长度
*
* @return 最大值
*/
int max(int *a,int len){
//定义变量储存最大值
int max = *a; // 初始化为数组首元素
// 找出最大值
for (int i =1; i < len; i ++) {
if (*(a +i) > max) {
max = *(a + i);
}
}
return max;
}
int main(int argc,const char * argv[]) {
//定义并初始化一个数组
int a[10] = {12,23,34,13,999,4,0,-45,9,10};
//调用函数找出最大值
int m = max(a,10);
// 输出最大值
printf("%d", m);
return 0;
}
2.函数指针
函数指针变量:存放函数的首地址的指针变量就是函数指针变量。
函数指针变量的定义
返回值类型 (*变量名)(函数的参数);
int (*p)(int a, int b); //定义了一个函数指针p,可以存放返回值为int类型,并且有两个int类型的形参的函数
int (*p1)(int ,int ); //定义函数指针的时候,可以不用写形参名
函数指针的初始化
p = sum; // sum是函数名,存的就是函数在内存中的首地址
函数指针的使用
1)定义函数指针
2)给函数指针初始化
3)用函数指针间接调用函数
注意:
1)函数指针变量不能进行算术运算
2)函数调用中“(*指针变量名)”的括号不可少
函数指针的使用举例
#include <stdio.h>
// 定义函数
int sum(int a,int b){
return a + b;
}
int main(int argc,const char * argv[]) {
// 定义函数指针
int (*p)(int ,int );
//给函数指针初始化
p =sum;
//用函数指针间接调用函数
int s = p(23,89);// 也可以写成(*p)(23,89);
printf("%d", s);
return 0;
}
- 黑马程序员——c语言基础:指针函数和函数指针
- 【黑马程序员】C语言指针函数以及函数指针
- 黑马程序员——C语言------指针和一维数组、字符串、函数
- 黑马程序员———C语言———【函数指针、指针函数、野指针、内存管理、const关键字】
- 黑马程序员——C语言------指针和指针变量
- 黑马程序员——C语言基础——指针
- 黑马程序员——C语言基础—-----指针
- 黑马程序员——C语言基础07—指针
- 黑马程序员——C语言基础---数组、指针
- 黑马程序员——C语言基础(六)指针
- 黑马程序员——C语言基础篇---指针
- 黑马程序员——c语言基础:指针
- 黑马程序员——c语言基础:指针
- 黑马程序员——C语言基础---指针
- 黑马程序员——ios基础---C语言:字符串、指针
- 黑马程序员——C语言基础---指针1
- 黑马程序员——C语言基础---指针3
- 黑马程序员——C语言基础---指针4
- C++中的引用
- 自定义BaseAdapter完成ListView列表单选功能
- HDU ACM 4506 小明系列故事——师兄帮帮忙 ->简单快速幂
- 招聘一位优秀的工程师
- 如何运行导入eclipse的web工程
- 黑马程序员——c语言基础:指针函数和函数指针
- 控制td中的内容多出td长度的部分用省略号表示
- c++对于c的加强
- DuiVision开发教程(10)-皮肤选择窗口
- strstr的实现
- java-ee-eclipse里tomcat7.zip的配置
- 【我就看看不说话】ios 指南
- BZOJ 1486 最小圈
- POJ2349---Arctic Network