[理学]第8章 指针.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[理学]第8章 指针

数组元素表示方法 int a[10], * p = a; 则我们要使用数组中第i个元素,可以用如下的方法表示: 第十次上机问题 1.函数调用书写方式.经典错误:带返回值类型,实参与形参混淆. 2.返回值问题.(何时需要返回值?何时不需要返回值?) 第十一次上机问题 指针应用不熟悉. * 如果p1、p2不指向同一数组则比较无意义。 指针与一般的整数常量或变量之间的关系运算也是无意义的。 pf1==pf2表示pf1和pf2指向同一数组元素 pf1pf2表示pf1处于高地址位置 pf1pf2表示pf2处于低地址位置 * 通过前面的学习,现在数组元素的操作方法有两种:。。。。。。,是不是只有这两种哪? 若a是数组,p是一个指针,且p=a。则我们要使用数组中第i个元素,可以用如下的方法表示: 数组元素表示方法 第i个元素,可以用如下的方法表示: 下标法:a[i], p[i] 指针法:如*(a+i), *(p+i) * (1)p+i和a+i就是a[i]的地址, 它们指向数组的第i个元素。 (2)*(p+i)或*(a+i)是a[i]。 (3)指向数组的指针变量可以带下标, p[i]与a[i]、*(p+i)等价。 4)p[i]看起来就是一个数组。 p[i]:i是相对位置 a[i]:i是绝对位置 * * 前面我们讨论指针时已经知道数组名就是指针,通过指针可以操作数组元素。显然通过指针也可以操作字符数组和字符串。 这是我们已经熟知的指针的正常用法。但是对于字符串还可以有特殊的操作方法。 p是字符型指针变量,第2句的作用是把字符串的首地址赋给p,使其指向这个字符串。 ? 字符串的本质是一个数组,它之所以特殊在于:借助于指针,可以在形式上对其进行整体操作。 p=”I love china!” ; 和 printf(“%s”, p) ; 等。 * 1。字符串常量在内存中实际上也是按顺序连续存放的。与字符数组的形式相当。但是它没有数组名,不可以用下标引用。 2。p是字符型指针变量,第2句的作用是把字符串的首地址赋给p,使其指向这个字符串。 p指向字符数组或字符串后,便可通过p对字符串操作(p相当于字符数组名,而且更灵活) 3. 计算机根据字符串的长度将其在内存的某个区域进行存储,然后将字符串的首地址赋给指针变量p。(比字符数组节约空间) 3。可以对字符串中的每个字符进行操作 . 4。强调指针P指向一个字符串后,P就相当于整个字符串。通过引用P来引用字符串 * * p是一个指向int型的指针变量, p现在储存a的首地址,即a[0][0]的地址。 p +1是a[0][1]的地址。 决定指针运算时地址增量的单位长度在于说明语句。 * 经过上面的讨论可以知道,采用值传递方式传递参数时,在函数中形参被改变并不会影响到实参的值。这在一些只想在函数中引用实参,而不希望因为在函数中的误操作而影响实参值的问题来说是十分必要的。但是对于某些通过实参传入函数后,希望经过函数对形参的操作等同于对实参操作的问题,若利用值传递方式传递参数是达不到目的的。如例9.4中对数据交换的问题。此时就必须利用参数的地址传递方式传递参数了。 参数的地址传递方式作为参数传递的不是数据本身,而是数据的存储地址。在这种方式中,以数据的地址作为实参数据调用一个函数,而被调用的函数的形式参数必须是可以接受地址的指针变量,并且该指针变量的数据类型必须与被传递数据的数据类型相同。 * 讲之前,强调return只能带回一个值,如果需要两个值怎么办 * 指针变量也是变量,因此也可以作为函数的参数,而且指针变量作函数参数能够大大增强程序的灵活性。 如果传递的是地址,则通过形参可以改变实参的值。 注:1.不能企图通过改变形参地址而使实参地址也改变, 也就是说调用函数不能改变实参指针变量的值。 2.调用函数可以改变实参指针变量所指变量的值。 * 在lower( )函数中形参c以地址的传递方式接收字符的地址,同时它把变换后的结果返回给main( )中相应的str[i]变量。在程序设计中,这种方法的应用最为普遍。 * 函数的执行结果除了可以用return语句传递给调用它的函数外,还可以利用传递地址的方式将结果传递出去。 * 函数间的参数传递方式二----------- 地址传递方式 对数组整体来说,是不能够整体赋值的。当然也不能把整个数组作为一个参数复制到被调用函数的另一个数组中的。当采用数组复制方式向函数传递数组时,只能把数组的每一个数组元素作为一个参数传递给函数,这在上一段我们已经讨论过了。但是,当要传递的数组元素较多时,如果把它们都传递到函数中,必然要使用

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档