- 1、本文档共591页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
上海交大C课件讲述
指针作为函数参数和返回值 指针作为函数参数 数组名作为函数参数 返回指针的函数 引用和引用传递 返回引用的函数 返回引用的函数的主要用途 将函数用于赋值运算符的左边,即作为左值。 int a[] = {1, 3, 5, 7, 9}; int index(int); //声明返回引用的函数 void main() { index(2) = 25; //将a[2]重新赋值为25 cout index(2);} int index(int j) { return a[j]; } //函数是a[j]的一个引用 第7章 间接访问—指针 指针的概念 指针运算与数组 动态内存分配 字符串再讨论 指针作为函数参数和返回值 指针数组与多级指针 指向多维数组的指针 指向函数的指针 指针数组与多级指针 指针数组 Main函数的参数 多级指针 指针数组 地址本身也是数据,他们也可以像其他数据一样组织成一个数组 一个数组,如果他的元素均为指针,则称为指针数组 一维指针数组的定义形式: 类型名 *数组名[数组长度]; 例如,char *String[10]; 定义了一个名为String的指针数组,该数组有10个元素,数组的每个成员是一个指向字符的指针 指针数组的应用 字符串可以用一个指向字符的指针表示,一组字符串可以用一个指向字符的指针数组来表示 例:写一个函数用二分法查找某一个城市在城市表中是否出现。用递归实现 关键问题: 城市表的存储:用指向字符的指针数组 查找时的比较:用字符串比较函数 //该函数用二分查找在cityTable中查找cityName是否出现 //lh和rh表示查找范围,返回出现的位置 Int binarySearch(char *cityTable[], int lh, int rh, char *cityName) {int mid, result; if (lh = rh) { mid =(lh+rh)/2; result= strcmp(cityTable[mid], cityName); if (result == 0) return mid; //找到 else if (result 0) return binarySearch(cityTable, lh, mid-1, cityName); else return binarySearch(cityTable, mid+1, rh,cityName); } return -1; //没有找到 } 函数的应用 #include iostream using namespace std; int binarySearch(char *cityTable[], int lh, int rh, char *cityName); int main() {char *string[10] = {aaa, bbb, ccc, ddd, eee, fff, ggg, hhh, iii,jjj}; char tmp[10];; while (cin tmp) cout binarySearch(string, 0, 9, tmp) endl; return 0; } “aaa” “bbb” “ccc” “ddd” “eee” “fff” “ggg” “hhh” “iii” “jjj” 指针数组与多级指针 指针数组 Main函数的参数 多级指针 main函数的形参 如需要实现:copy a b之类的功能,可以用带有参数的main函数来实现 main函数有二个形式参数: int argc, char *argv[ ] argc – 参数的数目(包括命令名本身) argv[ ]—指向每个参数的指针,是一个指向字符串的指针数组 把参数传递给main() #include stdio.h int main(int argc, char *argv[]) { int i; cout argc=“ argc endl; for(i=0; iargc; ++i) cout argv[“ i “]=“ argv[i] endl; return 0; } 假设生成的执行文件myprogram.exe 把参数传递给main(
您可能关注的文档
- 大吨位箱梁顶升横移质量控制概要.ppt
- 上传学校各项岗位职责及制度讲述.doc
- 大坝供热补偿器技术协议08(终版)概要.doc
- 大地测量学基础实验任务概要.doc
- 大国重器PPT概要.ppt
- 上升、下降管安装方案讲述.doc
- 上册《从现在开始》课件讲述.ppt
- 大型室外管廊管道施工方案概要.doc
- 上学期八年级语文期末检测卷讲述.doc
- 大型数据库技术实验指导书08本科概要.doc
- 第30课 中国特色社会主义新时代和全面建成小康社会 课件中职高一上学期高教版中国历史全一册.pptx
- 11.2树立正确的人生目标 课件 七年级道德与法治上册(统编版).ppt
- Act it out You're late! 课件外研版英语三年级下册.ppt
- 第18课 北洋军阀的统治 课件中职高一上学期高教版中国历史全一册.pptx
- Project 1A good student 课件译林英语三年级下册.ppt
- Unit 2From head to toe第2课时(Story time) 课件剑桥英语三年级下册.ppt
- 7.2共建美好集体 课件 七年级道德与法治上册(统编版).ppt
- Unit 3 My familyLesson 2 课件精通版英语三年级下册.ppt
- 第16课 探索国家出路与挽救民族危亡的斗争 课件 中职高一上学期高教版中国历史全一册.pptx
- 3.1 地球宇宙的奇迹(教学课件) 教科版科学五年级下册.ppt
文档评论(0)