网站大量收购独家精品文档,联系QQ:2885784924

第五章构造数据类型.ppt

  1. 1、本文档共127页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(3)字符串比较函数strcmp( ) 其格式如下: 功能:字符串比较函数,比较两个字符串s1和s2的大小(如果有参数n,比较前n个字符的大小)。当字符串s1大于、等于或小于字符串s2时,函数返回值分别是正数、零和负数。例如,【实例5-9】中的第19行语句: i=strcmp(str,str2); //比较两个字符串是否相等 就是返回一个整数,用来判断两字符是否相等。 int strcmp(const char *s1,const char *s2,[int n]) 返回本讲目录 (4)求字符串长度函数strlen( ) 其格式如下: 功能:返回字符串s的长度。 例如,【实例5-9】的第16行语句中,strlen(str)表示输出字符数组str中字符的个数(空格也是一个字符)。 int strlen(const char *s) 返回本讲目录 练一练 【练习5-3】 阅读下面程序,分析运行结果。 程序分析: int x[]={1,2,3,4,5,6,7,8,9,10};定义整型数组x,因为数组名为数组x的首地址,所以数组x中的元素地址可以分别用x、x+1…x+9来表示,语句int *px[5];定义一个指针数组px,每个元素都是指针,通过for语句为数组px中的元素赋值。指针数组元素与其所指向数据的关系如图5-7所示。 图5-7 【练习5-3】指针数组元素与其所指向数据之间的关系 返回本讲目录 在输出流中,其中*(*(px+2)+1)表示的是数组x中的元素x[5],所以输出结果为6;同理**px+1表示的是数组x中的元素x[0]加上1,所以输出结果为1+1=2;而*(px[3])表示的数组元素为x[6],所以输出结果为7;而*(px[4]+1)表示的是数组元素x[9],所以输出结果为10。 点击打开【练习5-3】源程序。 程序运行结果如下: 返回本讲目录 第十四讲 指针和函数 一、指针作为函数参数 二、返回指针的函数 三、指向函数的指针 练一练 返回本章目录 一、指针作为函数参数 【实例5-10】 阅读下面程序,分析并写出程序的运行结果。 程序分析: 主程序中定义了两个整型变量a、b,初值分别为5、10,调用func1()时,将变量a的地址传递给指针变量p1,变量b的地址传递给指针变量p2,在func1()函数中通过指针变量p1、p2改变它们所指向的值,由于变量a、b的地址即为指针变量p1、p2所存的内存地址,所以变量a的值被改为1,b的值被改为2。 指针作为函数参数时,形参变量为指针型变量(如func1的*p1和*p2),而主函数中的函数调用语句中,括号内的实参应该为变量的地址(如主函数中的a和b)或指针变量。 返回本讲目录 点击打开【实例5-10】源程序。 程序运行结果如下: 返回本讲目录 1.指针作为函数的参数 当需要在不同的函数之间传递大量数据时,程序执行时调用函数的开销就会比较大,这时,如果需要传递的数据是存放在连续的内存区域中,就可以只传递数据的起始地址,而不必传递数据的值,这样就会减小开销,提高效率。 函数的参数不仅可以是基本类型的变量、对象名或函数名,而且可以是指针。指针作为函数参数是一种地址传递方式,指针可以作为函数的形参,也可以作为函数的实参。 返回本讲目录 如果以指针作为函数的形参,在调用时实参将值传递给形参,也就是使实参和形参指针变量指向同一内存地址,这样在子函数运行过程中,通过形参指针对数据值的改变也同样影响着实参所指向的数据值,从而实现参数双向传递的目的。即通过在被调用函数中直接处理主调函数中的数据而将函数的处理结果返回其调用者。 例如,在【实例5-10】中第11行语句为子函数func1的调用语句: func1(a,b); 括号内的a和b就是将变量a、b的地址作为函数参数传递给子函数func1的形参指针变量p1和p2,这时指针p1指向了变量a,指针p2指向了变量b。然后在子函数func1中使用*p1来表示变量a,用*p2来表示变量b,实现修改主函数中变量a和b两个值的功能。 返回本讲目录 二、返回指针的函数 【实例5-11】 阅读下面的程序,注意观察程序的运行结果。 程序分析: 首先分析这个函数要实现的功能,就是在一个字符串中查找指定的字符第一次出现的位置。函数定义应包括函数的返回类型、函数名、形参表和函数体。 子函数myStrCh的返回值应该是一个地址值,对应的是找到的字符第一次出现的地址,也就是指向这个位置的指针。在main()函数中调用函数myStrCh,函数的实际参数是待查找的字符串和用于查找的指定字符,并通过语句输出函数

文档评论(0)

134****9146 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档