- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任 务 用指针实现两个字符串的合并 任务目的 指针是C语言中一个重要的概念,也是C语言的精华部分。正确的使用指针,可以有效地描述复杂的数据结构,书写出简洁、高效的程序。通过使用VC++6.0对“用指针实现两个字符串的合并”程序的开发,使学生熟练掌握指针的基本应用。 任务所需主要相关知识 指向变量的指针变量 指向数组的指针 指向函数的指针 指针知识扩展 8.1 指 针 概 述 指针是C语言中广泛使用的一种数据类型,它极大地丰富了C语言的功能。巧妙而恰当地使用指针,可以使程序简洁、提高运行效率。同时,指针也是C语言中最难掌握的一部分,在学习中除了要正确理解基本概念,还必须要多编程并上机调试。 1.指针的概念 在计算机中,所有的数据都是存放在存储器中的。一般把存储器中的一个字节称为一个内存单元,不同的数据类型所占用的内存单元的大小不等,如一个整型数占2个单元,1个字符型数占1个单元等。为了正确地访问这些内存单元,必须为每个内存单元编号。根据一个内存单元的编号即可准确地找到该内存单元,内存单元的编号也叫做地址。 既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常把这个地址形象的称为指针。 2.指针变量的概念 内存单元的指针和内存单元的内容是两个不同的概念。 在C语言中,允许用一个变量来存放指针,这种变量称为指针变量。如图8-1中的变量x就是一个指针变量。 8.2 指向变量的指针 变量的指针就是变量的地址。存放变量地址的变量就是指针变量。即在C语言中,允许用一种变量来存放地址,这种变量称为地址变量,又称指针变量。因此,一个指针变量的值就是某个变量的地址或某个变量的指针。 8.2 指向变量的指针 为了表示指针变量和它所指向的变量之间的关系,在程序中用“*”符号表示“指向”,例如,x代表指针变量,而*x是指针变量x所指向的变量,如图8-2所示。 1.指针变量的定义形式 其一般形式为:类型说明符 *变量名; 其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示该指针变量所指向的变量的数据类型。 2.指针变量的引用 指针变量同普通变量一样,使用之前必须要先定义,并且赋值。未经赋值的指针变量不能使用。为指针变量赋值只能赋予一个地址值,而不允许是其它类型的数据,否则将引起错误。在C语言中,变量的地址是由编译系统分配的。 3.指针变量做函数的参数 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。 【例8.2】输入a和b两个整数,按先大后小的顺序输出a和b,要求用函数处理,并且用指针变量做函数的参数。 程序代码 #include stdio.h change(int *q1,int *q2) {int t; t=*q1; *q1=*q2; *q2=t; } void main() { int a,b; int *p1,*p2; scanf(%d,%d,a,b); p1=a;p2=b; if(ab) change(p1,p2); printf(\n%d,%d\n,a,b); } 运行结果 8.3 指向数组的指针 所谓数组的指针就是数组的起始地址,数组元素的指针就是数组元素的地址。 1.指向数组元素的指针 定义一个指向数组元素的指针变量的方法,与前面介绍的指针变量的方法相同。定义形式如下: 类型说明符 *指针变量名; 其中类型说明符表示所指数组的类型。从一般形式可以看出指向数组的指针变量和指向普通变量的指针变量的定义相同。 例如: int a[5]; /*定义a为一个整型的数组,其中包含5个元素*/ int *p; /*定义p为指向整型变量的指针变量*/ 应当注意,因为数组为int型,所以指针变量也应为指向int型的指针变量。下面是对指针变量的赋值: p=a[0]; 把a[0]元素的地址赋给指针变量p。使p指向a数组的第0号元素。如右图所示。 2.通过指针引用数组元素 C语言规定:如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。 引入指针变量后,就可以用两种方法来访问数组元素了。 如果p的初值为a[0],则:图8-14 指向数组的指针变量p值的变化 (1)p+i和a+i就是a[i]的地址,或者说它们指向a数组的第i个元素。如图8-14所示。 (2)*(p+i)或*(a+i)就是p+i或a+i所指向的数组元素,即a[i]。例如:*(p+3)或*(a+3)就是a[3]。 (3)指向数组的指针变量也可以带下标,如p[i]与*(p+i)等价。 根据以上叙述,引用一个数组元素可以用: ① 下标法,即用a[i]形式访问数组元
您可能关注的文档
- C语言程序设计 常雪琴 叶得学 第2章 数据类型与基本运算新.ppt
- C语言程序设计 常雪琴 叶得学 第3章 顺序结构程序设计新.ppt
- C语言程序设计 常雪琴 叶得学 第4章 选择结构程序设计新.ppt
- C语言程序设计 常雪琴 叶得学 第5章 循环结构程序设计新.ppt
- C语言程序设计 常雪琴 叶得学 第7章 函数新.ppt
- C语言程序设计 常雪琴 叶得学 第8章 指针新.ppt
- C语言程序设计 常雪琴 叶得学 第9章 结构体和共用体新.ppt
- C语言程序设计 常雪琴 叶得学 第10章 预处理命令与位运算新.ppt
- C语言程序设计 常雪琴 叶得学 第11章 文件新.ppt
- C语言程序设计 第1章 C语言概述新.ppt
- C语言程序设计 路俊维 马雪松主编 第9章 结构体与共用体新.ppt
- C语言程序设计 路俊维 马雪松主编 第10章 文件新.ppt
- C语言程序设计 孙凤美 主编 09473C语言程序设计新.ppt
- C语言程序设计 孙辉 等 c语言程序设计电子讲稿(孙辉)07750新.ppt
- C语言程序设计 王建国 陈惠明 第1章 C语言基础知识新.ppt
- C语言程序设计 王建国 陈惠明 第2章 算法新.ppt
- C语言程序设计 王建国 陈惠明 第3章 C程序的控制结构新.ppt
- C语言程序设计 王建国 陈惠明 第4章 数组与指针新.ppt
- C语言程序设计 王建国 陈惠明 第5章 函数新.ppt
- C语言程序设计 王建国 陈惠明 第6章 结构体与共用体新.ppt
文档评论(0)