C语言第10章(谭浩强).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文档。上传文档
查看更多
第10章 指针 指针可以有效地表示复杂的数据结构;能动态的分配内存、使用字符串和数组;能在调用函数时获得1个以上的结果;能直接处理内存单元地址等。 掌握指针的应用,可以使程序简洁、紧凑、高效。 在定义指针变量时注意: (1)定义指针变量时,变量前面的*是表示该变量是指针型的,其变量名是i_pointer,而不是* i_pointer (2)定义指针变量必须指定其类型。为什么? 当i_pointer++时,加1代表多少字节才能确定。 总结:一个指针变量只能指向同一类型的变量。 如: float a ; int *pointer ; pointer = a ; (错) 二、 指针变量的引用 指针变量中只能存放地址(指针) 两个运算符: 1. :取地址运算符 如:a /*变量a的地址*/ 2. *:指针运算符,取其指向的内容 *pointer表示求指针变量pointer所指向变量的内容(值)。 如: int i=3 , c ; int * p ; /* *表示定义指针型变量p */ p = i ; /* 指针变量p指向了变量i */ c = *p ; 例10.1 通过指针变量访问整型变量 main() {int a,b; int *pointer_1, *pointer_2 ; /*区分定义和引用时的区别*/ a=100 ; b=10 ; pointer_1 = a ; pointer_2 = b ; printf(“%d,%d\n”,a,b); printf(“%d,%d\n”, *pointer_1, *pointer_2) ; } 说明: 若: p1 = a ; /* 假设 p1 和 p2 是指针 */ p2 = * p1 ; p2= a /*p2也指向了a*/ (1) * p1 的含义是什么? 和*优先级相同,按自右至左的方向结合,先进行 *p1的运算,就是变量a,再执行运算。 * p1 a 例10.2 输入a和b两个整数,按大小的顺序输出. main( ) {int *p1, *p2 , a , b ; scanf(“%d,%d”,a,b) ; p1 = a ; p2 = b ; if ( ab ) { p1 = b ; p2 = a ; } printf(“a=%d,b=%d\n”, a , b ); printf(“max=%d,min=%d\n”,*p1,*p2) ; } 三、 指针变量作为函数参数 函数的参数可以是整型、实型、字符型等数据或者是数组,还可以是指针类型的。它的作用是将一个变量的地址传送到另一个函数中。 指针变量作函数参数时,注意: 1.指针变量,既可以作为函数的形参,也可以作函数的实参。 2.指针变量作实参时,与普通变量一样,也是“值传递”,即将指针变量的值(一个地址)传递给被调用函数的形参(必须是一个指针变量)。 注意:被调用函数不能改变实参指针变量的值,但可以改变实参指针变量所指向的变量的值。 例10.4 输入a、b、c 3个整数,按大小顺序输出。 §10.3 数组的指针和指向数组的指针变量 既然指针可以指向变量,当然也能指向数组。 数组的元素是连续存放的: 一般,用下标法表示数组元素,如:a[3] §10.3.2 通过指针引用数组元素 如: int a[3] , *p = a ; *p = 1 ; /*相当于a[0]=1 */ ( p = 1 ; ) (错) 注意:当p+1时,则指针p指向同一数组的下一个元素,而不是把地址加1。 当p为int型时:p+1相当于使p的值(地址)加2个字节; 当p为float型时:p+1相当于使p的值(地址)加4个字节; 所以: p+1代表的地址 = p+1*d 例10.5 输出数组中的全部元素。比较三种方法 使用指针变量指向数组元素时,需注意: (1)可以通过改变指针变量的值使其指向不同的元素, 如

文档评论(0)

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

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

1亿VIP精品文档

相关文档