- 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
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江西省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年安徽省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年福建省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年广东省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年河南省高考英语试卷(含答案解析)+听力音频.docx
- 2024年湖北省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年湖南省高考英语试卷(含答案解析)+听力音频+听力原文.docx
- 2024年江苏省高考英语试卷(含答案解析)+听力音频+听力原文.docx
文档评论(0)