C语言程序设计第七章03.ppt

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

算法语言程序设计 -C语言程序 第七章指针 主要内容 指针的概念 指针运算 指针与函数参数 指针与数组 字符指针和字符串 函数型指针 指针型指针 指针功能 指针是一种构造类型数据,利用指针 可以有效地表示复杂的数据结构,动 态地分配内存,方便地使用字符串和 数组,灵活地实现函数间的数据传递 , 直接处理内存地址等。 掌握指针的应用,可以使算法表达 更确切,程序更清晰简炼,代码 更紧 凑有效。 7.1 指针的概念 7.1.1 存储单元的地址与内容 程序一旦被执行,则该程序的指令、常量和变 量等都要存放在机器的内存中。 内存是以字节来划分存储单元的,每个字节都 有一个编号,这就是存储单元的“地址”。 在计算机中 ,根据内存的地址,就可以访问存 储在该单元中的数据。 将某存储单元中的数据称为这个存储单元的“内 容”。 存储单元的地址与内容如下图所示。 图7.1 7.1.3 指针变量的定义 指针变量使用前应先定义。 定义格式: 类型标识符 *标识符 说明: ? 标识符是被定义的指针变量的名字。 ? 类型标识符则表明了该指针变量所指 向变量的类型。 例如:int *p; char *ch; 7.1.4 指针运算符和指针变量的引用 1.运算符 取地址运算符 运算格式:标识符 * 指针运算符(间接访问运算符) 运算格式:*指针变量 例如: int *p,i,j; … p=i; j=*p; 2. 指针变量的引用 指针变量一经定义,可以像其它基本类型 变量一样引用。 (1) 指针变量只接收地址,例如: int *pi ,*pj ,*pk ,I , j , k ; … pi = i; pj = j; pk = k; (2) 指针变量指向变量后,可以像其它基本类 型变量一样引用。 例如: int *pi,*pj,i,j; pi=i; pj=j; *pi=0; /*等价于i=0;*/ *pj+=1; /*等价于j+=1; */ *(pi)++; /*等价于i++; */ 切记:指针变量引用前必 须指向某个变量。 例如: main( ) { int *p; *p=100; /* 错*/ printf(%d \n,*p); } (3) 指向同类型的指针变量之间可以相互赋值 例如:pi=pj; 注意: 对于指针变量pi和pj,下面两种赋值的效果 是不等价的。 pi=pj; 和 *pi=*pj; (4) 如果指针变量pi已经指向变量i,那么: *pi与i等价。 因为两个运算符的优先级别相同,按自右向左方向 结合,先进行*pi运算,它就是变量i,再进行运算, 所以*pi与i等价。 (5) 若i是一变量,则*i与i等价。 因为先进行i运算,其结果是地址,再进行*运算,相 当于取这个地址中的内容,即i的值。故*I与i等价。 (6) 指针变可以用存储类型说明,对于被说 明为静态的和外部的指针变量可以被赋 初值(初始化)。 例如: int *p,i,*pi=i; main ( ) { static char a[10],*pa=a;  … } (7) 指针变量可以指向任何类型变量,其中 包括其他的指针变量。 例如: int i,*pi,**ppi; … pi=i; ppi=pi; … (8) 指针变量可以赋“空”值,其含义是该指 针变量不指向任何变量。 “空”值通常作为指针的异常标志。用NULL表示, 即全部二进位均为0值。NULL其实就是0,但习惯 上不用0而 用NULL,办法是通过#define定义。 例如: #define NULL 0 main( ) {int i,*p;p=NULL; … p=i;… if(p==NULL) pr

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档