2014年C语言教程第八章.pptVIP

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 §8.1 指针的概念 §8.2 指针变量的定义和引用 §8.3 指针与数组 §8.4 指针与字符串 §8.5 指针与多维数组 §8.11 本章小结 本章作业一 本章作业四 小结 int a[10], *p; p=a; 或 p=a[0]; p为指向数组元素的指针   C语言规定:数组名表示数组的首地址,即第0个元素的地址;即数组名是指向数组第0个元素的指针常量。 a+i p+i 表示数组第 i 个元素的地址(a[i]),即指向第 i 个元素的指针 *(a+i) *(p+i) 表示数组的第 i 个元素(a[i]) a[i] p[i] 表示数组的第 i 个元素(a[i]) 数组第 i 个元素地址的表示方法: a[i], a+i, p+i, p[i] 数组第 i 个元素的表示方法: a[i], *(a+i), *(p+i), p[i] 31/55 8.3.3 通过指针在函数间传递一维数组 1、数组元素作为函数参数: void swap(int x, int y); swap(a[1], a[2]); 2、数组名作为函数参数: void f(int x[ ], int n); f(a, 10);   数组名代表数组首地址。用数组名作实参,调用函数时是把数组首地址传递给形参,而不是把数组的值传给形参。 a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a x x[0] x[1] x[2] x[3] x[4] x[5] x[6] x[7] x[8] x[9]   实际上能够接受并存放地址值的只能是指针变量,C编译系统都是将形参数组名作为指针变量来处理的。 void f(int *x, int n); x[i] *(x+i)   若在函数调用期间改变了数组某一存储单元的内容,则在函数调用完毕后,已改变的值被保留下来。 Eg810.cpp 32/55 变量名与数组名作函数参数时的比较: 能否改变实参的值 传递的信息 要求形参的类型 数组名 变量名 实参类型 变量名 变量的值 不能 数组名或指针变量 数组的起始地址 能 需要说明的是:   C语言的函数调用都是采用“值传递”方式;当用变量名作函数参数时传递的是变量的值;用数组名作函数参数时,由于数组名代表的是数组首地址,因此传递的是数组首地址,所以要求形参为指针变量。 例题:有一个一维数组score,内放10个学生成绩,求平均成绩。 3、指针变量可替代数组名作为函数的参数: ①、指针变量可以作为函数的形参; ②、指针变量可以作为函数的实参; Eg811.cpp、Eg812.cpp 33/55 归纳起来,实参与形参的对应关系有: ①、形参和实参都用数组名: f(int x[ ], int n); f(a, 10); 把实参数组首地址传给形参作为形参数组首地址; ②、实参用数组名,形参用指针变量: f(int *x, int n); f(a, 10); 把实参数组首地址传给形参(指针变量),函数中用指针访问实参数组 ③、形参和实参都用指针变量: f(int *x, int n); f(p, 10); 函数调用前应先给实参指针变量赋值(如:p=a) ④、实参为指针变量,形参为数组名: f(int x[ ], int n); f(p, 10); 实参通过指针变量为形参提供数组首地址; 34/55   存放字符串的字符数组是一种特殊的数组,即以\0作为结束标志。在访问字符串时候,以\0作为结束条件。 8.4.1 通过指针访问字符串 一、有关概念: 1、字符串的指针: 对应的字符数组在内存中存放的首地址; 2、指向字符串的指针变量: 专门用来存放字符数组首地址的变量; 3、字符数组指针变量的定义与赋值: char *p, str[30]; p=str; p=str[0]; 二、字符串的表示形式: 1、用字符数组实现: void main( ) { static char s[ ]=I love China!; printf(%s\n, s); } 35/55 2、用字符指针指向一个字符串: static char s[ ]=I love China!; char *p; p=s; printf(%s\n, p);   对于指向字符的指针变量,除了可以把字符数组名(指向字符的指针常量)赋给它外,还可以将一个字符串常量赋给它。 char *cp; cp=Hello, world!; 也可以在定义时赋初值: char *cp= Hello, world!;   C语言在处理字符串常量时,在内存中开辟连续的存储单元,存放字符串中的各字符和字符串结束标志\0。   对指针变量赋值的作用是:将字符串在内存中的首地址

文档评论(0)

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

1亿VIP精品文档

相关文档