网站大量收购独家精品文档,联系QQ:2885784924

第5章 指针概要1.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 指针概要1

C语言程序设计 第五章 指针 第五章 指针 教学目标 指针的基本概念 指针变量的定义与初始化 指针运算符 在数组、字符串与结构中使用指针 六、指针 内容要点 指针的基本概念 指针的定义和初始化 指针赋值、间接访问运算符 指针与数组 用数组名给指针赋值 指针数组 2、指针的定义与初始化 int *p=NULL; 定义了一个名为p的指针,该指针指向一个整数类型的变量,且被初始化为空指针(NULL) 一时指针被定义,系统会为p分配内存单元,该单元的地址可以用p表示。 在p中赋入一个符号化的常量NULL,称为将指针p初始化0 。 NULL定义在iostream.h中,其值为0,0是唯一可赋给指针变量的整型值。 在定义时让指针初始化为NULL,可防止其指向未知的内存区域,以避免产生难以预料的错误。这是一个好习惯。 5.2.3 指针数组 1. 指针数组的概念 指针数组也是数组,但它的各数组元素都是指针,且必须是指向同一种数据类型的指针。 2. 指针数组的定义和初始化 假设存在3个数组,定义如下 ar0[]={0,1,2}; ar1[]={1,2,3}; ar2[]={2,3,4}; 下面的语句定义一个指针数组p,并初始化 int *p[]={ar0,ar1,ar2}; 5.2.3 指针数组 这条语句定义p是int *类型的数组,其长度由初始化的项决定,此处为3.这个数组的每个元素都是一个指针变量,分别指向数组ar0,ar1和ar2的首地址。 5.2.3 指针数组 下面给出一个程序,程序5_8.cpp。希望在机器上运行这个程序,重点理解: (1)如何输出一个变量的地址 (2)上图中p与数组ar0,ar1,ar2间的指向关系 (3)p[0][0]与p[0][1]的含义 5.2.4 指向指针的指针 指向指针的指针:双重指针变量,其值为一个指针变量的内存存放地址 int a = 123; int *p_a = a; //p_a 指向变量a int **p = p_a; //p 指向指针 p_a 5.2.4 指向指针的指针 二维数组的数组名的含义 二维数组的名称也是一个首地址,指向二维数组的第一个元素。 二维数组是一个特殊的一维数组。该一维数组的每一个元素是一个指针(指向另外的一维数组), 实际上,二维数组就是一个指针数组 二维数组的数组名可以看成是指向指针的指针。 5.2.4 指向指针的指针 char name[3][ ] = {"China", "America", "German"}; 数组名:name(双重指针) 元素:name[0], name[1], name[2](指针) 元素:name[0][0],name[1][1](字符) 5.2.4 指向指针的指针 例:通过双重指针访问数组元素(5_9.cpp) // 通过双重指针访问字符串 for (i=0; i3; i++) printf(\n第%d个字符串的首地址:%ld, %ld, %ld, %ld, i,name+i,name[i],name[i], name[i][0] ); // 通过双重指针访问字符串中的各个字符 for (i=0; i3; i++) printf(“\n元素name[%d]指向字符串:%s。其中 的第3个字符是:%c,i,name[i], *(*(name+i) +2)); 5.3 字符串及其处理 在C语言里,没有提供专门的字符串类型,所以需要使用字符数组来处理字符串。 字符数组是最常用的一维数组,因为C语言经常用它来书写与字符串处理有关的程序。字符数组是以字符作为元素的数组,可用于存储和处理字符型数据。字符数组中一个元素存放一个字符。 5.3.1 字符串指针 可以使用指针指向字符数组或字符串常量,通过指针来使用字符数组或字符串常量。 指向字符串的指针变量实际上就是一个指向字符型变量的指针变量,正如同指向整型数组的指针变量就是指向一个整型变量的指针变量一样,因为一个字符串就是一个字符数组。 指向字符串的指针变量,它保存的是字符串中第一个字符所在内存单元的地址。 5.3.2 字符串应用举例 一辆肇事汽车的号码是4位十进制数。目击者向交警描述这个车号:这是一个完全平方数,且这4个数字从左至右一个比一个大。试编程算出车号。 解题思路 (1)令n为待求的车号,则n=I*I,且I=32,33,…,99 (2)枚举I,得n=I*I,查看n的各位从高到低是否一个比一个大,如是则找到答案。 5.3.2 字符串应用举例 (3)将n这个数字按位分解为4个数字字符,这可以用将数字转为字符串的函数 char *itoa(int value,char *string,int radix) itoa是函

您可能关注的文档

文档评论(0)

yaocen + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档