C语言第7章_指针.ppt

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

第7章 指针 C程序设计中使用指针可以: 有效地表示复杂的数据结构——链表等 动态分配内存——malloc函数和free函数 调用函数时,可以得到多于一个的值 教学目标 1、掌握变量的两种访问方式 (1)用变量名直接访问变量 (2)用指针变量间接访问变量 2、掌握一维数组的两种访问方式 (1)用下标变量直接访问一维数组的元素 (2)用指针变量间接访问一维数组的元素 3、掌握二维数组的两种访问方式 (1)用双下标变量直接访问二维数组的元素 (2)用指针变量间接访问二维数组的元素 7.1 指针的概念 变量与地址 short a,b,c; a=1; b=2; c=a+b; C 语言提供对内存单元的 “间接访问” 指针与指针变量 例 指针的概念 指针变量的要素: 指针变量名(与一般变量相同,但说明时要加*号) 指针变量的类型:指针变量所指向的变量的类型,不是自身的类型 指针变量的值:某个变量在内存中的地址,简称变量的内存地址 指针变量一旦存放了某个变量的地址后,指针变量指向的目标变量就是该变量 float a,*p=a; a=3;(直接访问) 等价于 *p=3; (间接访问) 指针变量的初始化 一般形式 数据类型 * 指针名=初始地址值; void *类型指针 表示: void *p; 使用时要进行强制类型转换 如:void *p; double x; p=(float *)x; 例: 输入两个数,从大到小输出(用指针变量完成) 总结 用指针变量间接访问变量的步骤 (1)定义指针变量 (2)将要访问变量的地址存放到指针变量中,则指针变量就指向了要访问的变量 (3)用(*指针变量)的形式访问即可 数组元素是内存的一个存储单元,故指向数组元素的指针变量的性质和指向变量的指针变量是一样的。 int a[10]; int * p = a[0]; int *p=a; p = a[3]; *p=1; 二、指针的算术运算 指针与数组 三、指针的关系运算 若p1和p2指向同一数组,则 p1p2 表示p1指的元素在前 p1p2 表示p1指的元素在后 p1==p2 表示p1与p2指向同一元素 例:注意指针的当前值 例 注意指针变量的运算 指针与数组 已知10个整数,将任意一个整数按指定的位置插进去。输出插入后的结果。(数据从键盘输入) 已知5个从小到大排序的实数,将任意一个实数按原来的顺序插进去。输出插入后的结果。(数据用初始化的方法) 对任意一组实数,将指定位置的数据删除,输出删除后的结果。 (数据从键盘输入) 将任意一组实数逆序存放并显示。 已知10个整数,任意给定一个整数。输出查找的结果。(顺序查找) 已知10个从小到大排序的整数,任意给定一个整数。输出查找的结果。(折半查找) void main() {char *p; gets(p); puts(p); } 思考:程序有错吗? char str1[]=“Hello!”; char str2[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’}; char str[10],*cp; str=“Hello”; cp=“Hello!”; 指针与二维数组 将二维数组视为一维数组 如:int x[3][4]; 则:数组x中的12个元素用一维数组元素可以表示为: 元素地址:x[0]+i*4+j , i=0,1,2; j=0,1,2,3 或x[0][0]+i*4+j 元素:*(x[0]+i*4+j) , i=0,1,2; j=0,1,2,3 用指向一维数组元素的指针变量引用二维数组元素 如: int x[3][4],*p=x[0];//p指向了x[0][0] 则:数组x中的12个元素用指针变量p可以表示为: 元素地址:p+i*4+j , i=0,1,2; j=0,1,2,3 元素:*(p+i*4+j) , i=0,1,2; j=0,1,2,3 或:p[i*4+j] , i=0,1,2; j=0,1,2,3 练习: 用指针变量求四行五列二维实型数组的最大值、最小值和平均值,并指出最大值、最小值的位置。 分析: 主要变量说明:指针变量、二维数组、最大值、最小值、平均值,行、列 关键点: 用指针变量记住二维数组的首元素地址 用*(指针变量+行下标*列数+列下标)的形式表示二维数组元素 #include stdio.h void main(){ float

文档评论(0)

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

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

1亿VIP精品文档

相关文档