C语言编程教程 第10章 指针.ppt

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

教学要点 一、基本概念 二、指针变量的引用 指针运算符:和*的用法 指针的运算:算术、关系、赋值。 指针变量作为函数的参数 三、数组与指针 相关概念及定义 数组的访问 数组名作为函数参数 多维数组与指针 教学要点 四、字符串的指针和指向字符串的指针变量 字符串的表示:字符数组与字符串指针 字符串指针作函数的参数 字符指针变量与字符数组的区别 五、函数的指针和指向函数的指针变量 六、返回指针值的函数 七、指针数组与指向指针的指针 八、指针的数据类型和指针运算 基本概念 1、变量定义: 在编译时,为变量分配适当大小的内存单元。 2、存储单元的地址: 给定的一个内存单元的字节偏移量(编号或地址)。 内存中每个字节具有一个地址,用以区分不同的存储位置。 3、存储单元的内容: 某一个内存单元中存放的数据就是这个内存单元的内容。这些数据根据定义的变量的类型的不相同,占用内存的长度也不尽相同. (变量的值) 基本概念 4、指针: 即变量的地址。(如2000H、2001H…2009H等) 5、指针变量: 含义:用于存放指针(地址)的变量。 定义方法: 数据类型 *变量名 如:int x=3; int *pointer1; float *pointer2; pointer1=x; 数据类型 *变量名 1、数据类型:指针变量所指向目标单元的值的类型。 2、*:指针变量的定义符 3、变量名:目标变量在内存中的位置(表示一个地址) 如:pointer1=x; 4、指针变量的初始化:将指针变量指向一个具体的变量。 如: int x=3; int *pointer1=x; float *pointer2=y; char *pointer3=z; 1、:取地址运算符: 作用:用于变量名之前,表示该变量的存储地址。 2、*:指针运算符(间接访问) 作用:用于指针变量名之前,获取该指针所指目标单元的值。 例如: main() { int a,b,*point1,*point2; a=100;b=200;point1=a;point2=b; printf(“%d,%d\n”,a,*point2);} 3、和*优先级相同,“右结合”: 如: 若point1=a; 则 *point1等价于a; *a 等价于 a; (*point1)++等价于a++; 指针的运算 1、算术运算 含义:对于地址的运算,只能进行整型数据的加、减运算。 规则:指针变量+n 意味着将指针指向的当前变量向前或后的第n个变量单元。例10-1: 2、关系运算 作用:用于识别目标变量在内存中的前后位置。 用法:int i,j; int *p1=i,*p2=j; p1p2 用于识别变量i,j在内存的排列顺序。 3、赋值运算 作用:对指针变量的赋值运算,将改变指针变量的指向 例10-2: 4、例10-3: 例10_3:分析下面程序的功能. 指针变量作为函数参数 1、含义:函数的参数不仅可以是基本数据类型,还可以是指针类型。 2、功能:将变量的地址传送到另一个函数中。例10-4 3、结论: 4、例10-5、10-6、10-7、10-8: 例10_4:分析下面程序 例10_5:分析下面的程序写出结果 例10_6:分析下面的程序写出结果 例10_7:分析下面的程序写出结果 一、相关概念 数组的指针:数组的起始地址(即数组名)。它是一个恒定值指针。 数组元素的指针:数组元素的地址。 指向数组的指针变量:用于存放数组的起始地址或某一数组元素地址的变量。 二、定义: 与一般指针变量的定义方法相同。 如:int a[10],*p1,*p2; p1=a; // p1为指向数组的指针 p2=a[2]; // p2为指向数组元素的指针 在定义指针变量时可以直接赋初值。 数组的访问 引用数组元素可以用下标法或指针法。使用指针方法能使目标程序所占内存少、运行速度快。 一、基本方法 1、将指针指向数组中的某个元素; 2、利用*(p+n)获得数组元素的值。 如: int a[9]={0,1,2,3}; int *p=a; printf(“%d”,*p); printf(“%d”,*p++); printf(“%d”,*p--); 3、例10-9、10-10 二、要点: 例10_10:下面的程序的输出结果是什么? 要 点 1、指针变量可以实现自身值的改变: 如:p++; 2、应注意指针变量的当前值。 3、指针变量可以指向数组以后的内存单元。 4、注意以下的指针运算: 若:int a[10],*p=

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档