- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(12周)指针(二)
例:求a,b中的最小者。 m = (*p)(a,b); m = min(a,b); void main() { int (*p)(int, int); int a,b,m; p = min; scanf(%d,%d,a,b); m = (*p)(a,b); printf(\na = %d,b = %d, min = %d\n,a,b,m); } int min(int x,int y) { int z; z = (xy? x:y); return(z); } * 3.用函数的指针作参数 可以用指向函数的指针变量作为被调用函数的参数; 由于指针变量是指向某一函数的,所以先后使指针指向不同的函数,就可以在被调函数中调用不同的函数。 * 例: 设一个函数 process,在调用它的时候,每次实现不同的功能。 (1)求a和b之和。 (2)求a,b中大者。 (3)求a,b中小者。 分析: 函数名作实在参数; process的形参中,定义一个指向函数的指针。 * 主程序: void main() {int add(int,int),max(int,int), min(int,int); void process(int,int, int (*)(int,int)) ; int a,b; printf(please input a and b:\n); scanf(%d%d, a,b); printf(sum = ); process(a,b,add); printf(max = ); process(a,b,max); printf(min = ); process(a,b,min); } * 子程序: void process(int x,int y, int (*fun)()) { int result; result = (*fun)(x,y); printf(%d\n, result); } * add(int x, int y) { int z; z = x+y; return(z); } max(int x, int y) { int z; if (xy) z = x; else z = y; return(z); } * min(int x, int y) { int z; if(xy) z = x; else x = y; return(z); } * 说明 用指向函数的指针作函数参数的优越性在于能在调用一个函数过程中执行所指定的函数,从而增加处理问题的灵活性。 在处理不同函数时,process函数本身并未改变,而只是改变了调用它的实参。如果将另一个函数传给process,只需改变一个实参值即可。 * 第六节 指针数组 * 指针数组 一、指针数组的定义 二、指针数组的初始化 三、指针变量 * 1. 指针数组的定义 格式: 类型标识符 *数组名[常量表达式] 例: int *a[4]; 定义了一个有4个元素的一维数组; 数组的每个分量都是一个指向整型的指针; int *a[4]; 等同于 int *(a[4]); * 指针数组的定义 注意: [ ] 的运算优先级高于 *,如果写成 int (*a)[4]; 定义了一个行指针变量 a,指向有 4 个元素的一维数组。 * 2. 指针数组的初始化 指针数组的初始化就是在定义指针数组时给其数组元素赋值; 例: char *p[ ] = {Hello, Why,Thanks}; 指针数组的初值必须是地址; 注意! * P[0] P[1] P[2] H e l l o \0 W h y \0 T h a n k \0 s 图示: * 例:将若干字符串按字母顺序输出。 #includestdio.h #include string.h void main() { void sort(char *name[] , int n); void print(char *name[] ,int n); char *name[ ]={BASIC,FORTRAN,PASCAL,COBOL}; int n = 4; sort ( name , n ); print ( name , n ); } * void print(char *name[] ,int n) { int i; for( i = 0 ; i n ; i++) p
您可能关注的文档
- 三,电泳法(electrophoresis).ppt
- 上海闸北暑假补习班--高二化学乙醇苯酚.ppt
- 1999年全国普通高等学校招生统一考试(打印版).doc
- 专题15 水溶液中的离子平衡__弱电解质的电离平衡.ppt
- 专题04 离子反应.ppt
- 专题六___离子浓度大小比较(教师版).doc
- 专题4第3讲 有机综合推断与合成.ppt
- 专题四电解质,原电池二、原电池.doc
- 专题:离子反应①主备人:王洋先.doc
- 中图版生物必修1:第二单元 第一章 第一节 知能演练轻巧夺冠.doc
- 第12课 大一统王朝的巩固 课件(20张ppt).pptx
- 第17课 君主立宪制的英国 课件.pptx
- 第6课 戊戌变法 课件(22张ppt).pptx
- 第三章 物态变化 第2节_熔化和凝固_课件 (共46张ppt) 人教版(2024) 八年级上册.pptx
- 第三章 物态变化 第5节_跨学科实践:探索厨房中的物态变化问题_课件 (共28张ppt) 人教版(2024) 八年级上册.pptx
- 2025年山东省中考英语一轮复习外研版九年级上册.教材核心考点精讲精练(61页,含答案).docx
- 2025年山东省中考英语一轮复习(鲁教版)教材核心讲练六年级上册(24页,含答案).docx
- 第12课近代战争与西方文化的扩张 课件(共48张ppt)1.pptx
- 第11课 西汉建立和“文景之治” 课件(共17张ppt)1.pptx
- 唱歌 跳绳课件(共15张ppt内嵌音频)人音版(简谱)(2024)音乐一年级上册第三单元 快乐的一天1.pptx
最近下载
- 肝囊肿开窗引流术后护理查房.pptx
- 芯源微 -国内涂胶显影设备龙头, 国内涂胶显影设备龙头, 国内涂胶显影设备龙头, 布局化学清洗和 布局化学清洗和先进封装 先进封装 20240625 -西部证券.docx
- 2023-2024年EMS审核知识统考试题及答案汇总.pdf VIP
- 一种标示牌粘贴工具.pdf VIP
- DBJ50_T-157-2022 房屋建筑和市政基础设施工程施工现场从业人员配备标准.docx
- 云南省保山市隆阳区金厂河铜锌铁多金属矿矿床水文地质特征.doc VIP
- 电化学阻抗谱(EIS)原理及谱图分析.pptx
- 中班-科学-前进!磁力车(磁铁同极相斥、异极相吸)-课件(互动版).pptx
- 柳永《八声甘州》优质课件.ppt
- 道德与法治五年级上册第四单元传统美德 源远流长 教学设计.pdf
文档评论(0)