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

C程序设计(李峰).ppt

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

【例5.23】、 【例5.24】、 【例5.25】 第6章 指针 【内容提要】 1.知识点: 理解指针概念; 掌握指针变量的定义、初始化、指针运算符的使用方法; 掌握指针与数组、指针与字符串的关系; 正确运用指针存放数据。 2.难点: 指针数据类型的理解 二维数组的地址与指针的关系 字符数组与字符指针的区别与联系 指向数组的指针与指针数组的区别 6.1 指针的概念 1.指针变量的概念:存放其他变量地址的变量 1)指针变量的类型:指针所指向变量的数据类型,指针的类型必须和所指向的变量的类型相同 2)指针变量的作用域:根据指针的定义位置,分为局部、全局指针 2.变量的地址:变量所占的计算机内存中的第一个内存单元的编号 3.指针变量的存储: 1)每个指针变量占4个字节; 2)通过指针访问数据的方法:把指针定义为指向该数据类型的指针。 6.2 指针变量 6.2.1 指针的定义 1.定义格式 类型关键字 *指针变量名[=指针表达式]; 例:int *p; int a=10,*pa=a; 2.指针变量定义举例 (1)char c=‘a’,*pc=c; (2)char *ph1=“abc”,*ph2=ph1; a 10 a a b c \0 ph1 ph2 (3)int c=10,*pc=c; void *p1=0,*p2=pc; 对于第二句的解释: A、定义了两个空类型指针:p1、p2; B、p1被初始化为0,即空指针null;p2赋初值为pc,即指向整型变量c。 C、指针使用前必须初始化 3.指针类型也是一种数据类型 理解:数据类型 * 例: int * 理解为:int指针类型关键字 6.2.2 指针运算符(、*) 1. :取地址运算符 2. *:取值运算符——间接引用操作符,产生指针所指向的数据; 例: Float a=20,*pa=a; Printf(“%d %d”,a,*pa); // 20 20 又例:设x为变量,则: *x仍为x 原因:*、是同级运算符;同级运算符结合性从右向左。 即:*(x),因此为先取出x的地址,再取出该地址内所存放的值,即X的值。 又例:设p为指针,则 *p仍为p 如:L6_0.c #includestdio.h Void main() { double x=100,*px=x; printf(“%lf %lf\n”,x,*x); printf(“%#x %#x\n”,px,*px); } 运行L6_0.c 6.2.3 多级指针与指针数组 1.多级指针 1)一级指针:如果一个指针变量的值是某同一类型的变量的地址,则该指针成为一级指针; 2)二级指针:如果一个指针变量的值是某一级指针变量的地址,则称该指针为二级指针 3)多级指针:以此类推 例: int n=20,*pn=n,**pp=pn; 20 pp pn pn n n 4)多级指针表示:多个* 2. 指针数组 1)概念:元素是指针的数组 例: double *pd[5]={0},*qd=pd[0]; 2)指针数组名是一个二级指针 原因: A、指针数组名本身是一个指针,他指向了数组的第一个元素; B、数组元素也是地址,而不是数据。 3)定义指针数组时,必须对其进行初始化,是指针指向某一数组对象或空指针 例: int *pi[10]={0}; char *pr[3]={“rear”,”middle”,”front”}; ] 6.3 指针运算 1.赋值(=) 功能:将赋值号右边指针表达式的值赋给左边同类型的指针变量 例外:可将任意类型的指针表达式的值赋给void型指针 例: char ch=‘d’,*pch; pch=ch; void *pv=pch; 【例6.1】分析程序段 int a[4]={10,25,36,48}; int *p=a; printf(“%d”,*p); p++; printf(“%d”,*p++;); printf(“%d\n”,*++p;); 结果:10 25 48 2.自增(++)、自减(--) 1)p++、p--、++p、--p,和变量使用自增符功能相同 2)(*p)++:首先访问指针p所指的对象,然后使该对象的值自增,但指针p的值不变 【例6.2】分析下面程序段 char

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档