- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象与程序设计8
第八章 指 针 8.1 基本概念 8.2 指针变量的定义与引用 8.3 指针与数组 8.4 指针与字符串 *8.5 指针与函数 *8.6 指向指针的指针和指针数组 8.7 引用 8.1 基本概念 变量:代表内存中的某一区域,区域的大小由变量的数据类型决定,区域存在的地方由变量的存储类型决定,对该区域可进行读写操作。 内存地址:内存是以字节为单位的,每个字节都有唯一的编号,该编号称为内存地址。 [例] int a=3; char b=‘A’; 8.2 指针变量的定义与使用 指针变量的定义: 基本类型标识符 *指针变量名; 如:char *p1; int *p2,*p3; 对于上述实例,表示定义了三个指针变量,变量名为:p1,p2,p3,而不是*p1,*p2,*p3. 指针变量的引用 int *p;p=4000;(不合法) 定义了一个指针变量后,如果没有给它赋值,则其存放的地址是不确定的,这时,如果引用指针变量,就有可能导致不可预料的后果。要使指针变量指向某具体的变量,必须对它赋初值。 2、内存的动态分配 C语言提供的有关函数: malloc函数原型: void *malloc(unsigned int n); calloc函数原型: void *calloc(unsigned m,unsigned n); free函数原型: void free(void *p); 注意: 1、若给某个变量分配空间,可用malloc,给数组分配空间,可用calloc。 2、malloc函数及calloc函数返回值类型均为void指针类型,因此在调用时应进行相应的类型转换。 注意p++,*p++,(*p)++的区别 p++含义:不是单纯的地址值加1,而是指针指向下一个相邻的数据单元; *p++等价于*(p++) x=*p++等价于x=*p;p++; 注意*p++与*(++p)的区别; (*p)++为典型的值加一。见例题; 指针变量作为函数参数 将指针变量所指向的内存单元的值作为函数的实参; 将指针变量作为函数的形参; 使函数返回多个函数值的一般方法 8.3 指针与数组 8.3.1、数组的指针 数组及其内存存储方式 (1)一个数组包含若干个类型相同的元素,这些元素在内存中按照其下标由低到高顺序存放。 8.3.3、利用指针变量访问二维数组 8.4指针与字符串 字符串的一般操作: 定义字符数组的同时,为其赋一个值。 字符串的结束标志‘\0’; 若char x[]=“BOOK”;则x[0]=‘B’,x[1]=‘O’,x[2]=‘O’,x[3]=‘K’, x[4]=‘\0’; 字符串的访问:samp8.4.1 使用指针访问字符串 使用指针表达式访问字符串(将字符串看作字符数组) 改写samp8.4.1 使用指针变量访问字符串samp8.4.2 使用指针变量访问字符串常量 如:char *p=“this is a computer!”; 而char *p; *p=“this is a computer!”;是非法的; Samp8.4.3 对于以下程序段(p193)的理解: #include stdio.h void main(){ char *p; scanf(“%s”,p); printf(“\n%s”,p); } 字符串指针作为函数参数 参数传递方式是按地址传递。 samp8.4.4 samp8.4.5 引用具有指针的威力,但是调用引用传递的函数时,可读性却比指针传递好。 引用具有传值方式函数调用语法的简单性与可读性,但威力却比传值方式强。 有关字符串的基本操作 字符串的合并(samp8.4.6) 字符串的复制 取子串 取中间子串(samp8.4.7) 取左边子串(samp8.4.8) 取右边子串(samp8.4.9) 汉字字符串处理技术 8.7 引用 学习提示: 重点掌握:引用的语法、用引用传递函数参数的方法、理解c++在函数原型中声明引用的目的、正确使用引用,避免不恰当的引用返回、明辨引用与指针的区别。 引言: 程序设计语言的进化使用户从被迫解决细节问题中解脱出来,转向允许用户花更多时间来考虑“大的蓝图”。根据这种精神,c++中包含了一个称为引用的特征,它允许程序来负责确定把参数传递给函数的方法。 引用是个别名,当建立引用时,程序用另一个变量或对象(目标)的名字初始化它。从那时起,引用作为目标的别名而使用,对引用的改动实际就是对目标的改动。 为建立引用,先写上目标的类型,后跟引用运算符“&”,然后是
您可能关注的文档
最近下载
- 【社会层面】社会主义核心价值观.ppt VIP
- 回话有招高情商回话术书本.doc VIP
- 【社会层面】社会主义核心价值观精品课件.ppt VIP
- 沪教8AUnit6Ancientstories more practice-The story of 100,000 arrows 公开课优质课教案教学设计.doc
- 小学《科学》新教材培训研讨会:技术与工程领域总体介绍.pptx
- 2024年中考英语复习 并列复合句 讲义学案(解析版).pdf VIP
- 血常规结果解释ppt课件.pptx VIP
- 第16课 课件 2022-2023学年高中新经典日本语基础教程第二册.pptx VIP
- 软件工程专业生涯发展展示.pptx
- 成人脑室外引流护理——中华护理学会团体标准解读.pptx
文档评论(0)