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

大学一年级C语言教学课件《C语言程序设计》第7章 指针.ppt

大学一年级C语言教学课件《C语言程序设计》第7章 指针.ppt

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

指针及其应用 ??指针及其应用 掌握指针的概念、定义。 掌握指针变量的使用。 掌握指针在函数中的运用。 掌握指针的运算。 掌握指针在数组中的运用。 指针及其应用 基本概念 指针的定义和引用 指针与数组 指针与字符串 小结 课后作业 指针及其应用 C程序设计中使用指针可以: 有效地处理数组,字符串 有效地处理复杂的数据结构 扩展函数的功能 对内存实行动态分配 指针及其应用 1.内存地址──内存中存储单元的编号 (1)计算机硬件系统的内存储器中,拥有大量的存储单元(每个存储单元容量为1字节)。为了方便管理,必须为每一个存储单元编号,这个编号就是存储单元的“地址”。每个存储单元都有一个惟一的地址。 (2)在地址所标识的存储单元中存放数据。 注意:内存单元的地址与内存单元中的数据是两个完全不同的概念。 2.变量地址──系统分配给变量的内存单元的起始地址 指针及其应用 指针及其应用 指针变量的定义 指针变量的引用 指针定义与引用的有关说明 指针变量作为函数形参 指针及其应用 指针及其应用 指针变量必须先赋值,再使用 int i,*p; p=i; 指针及其应用 直接访问与间接访问 直接访问:按变量地址存取变量值 间接访问:通过存放变量地址的变量去访问变量 指针及其应用 从原理上了解指针,它是那么简单 一个普通变量,其值是一个内存地址 格守下列原则,指针使用永不出错 永远要清楚每个指针指向了哪里 永远要清楚指针指向的位置是什么 指针及其应用 使用指针变量的一般步骤为: 1)先定义指针变量和同类型的普通变量,如:int *p,x; 2)使用取地址运算符“”将指针变量指向普通变量,即:p=x; 3)此后,使用*p即可取代变量x 。 指针及其应用 1.同其他变量一样,在定义指针变量的同时,可以对 其初始化。例如:int x; int *p=x; 指针及其应用 4.p++、*p++、(*p)++的区别 指针及其应用 能够熟练使用指针来处理数组,可以使C程序更加 简练、有效,使用指针处理数组,要掌握以下两个要 点,方能操纵自如: 1.指针加1的概念和使用 2.一个数组的各个元素在内存中是顺序存放的 指针及其应用 数组的指针与数组元素的指针 数组的指针是指数组的首地址。 数组元素的指针是指数组元素的地址。 int a[10],*p=a; int a[10],*p=a[0]; int a[10],*p; p=a; int a[10],*p; p=a[0]; 指针及其应用 指向数组元素的指针变量 指针及其应用 指针及其应用 通过指针变量或指针表达式对一个数组的访问,归纳起来有以下几种方法: 输入输出数组的全部元素(1) main() { int a[10],i; for(i=0; i10; i++) scanf(%d, a[i]); for(i=0; i10; i++) printf(%d , a[i]); } 指针及其应用 多维数组的地址 int a[3][4]={{1,3,5,7},{9,11,13,15}, {17,19,21,23}}; a是一个数组名。a数组包含3行,即3个元素: a[0],a[1],a[2]。而每一元素又是一个一维数组,它包含4个元素(即4个列元素),数组名a是指向a[0]的首地址。 指针及其应用 从二维数组的角度来看,a代表整个二维数组的首地址,也就是第0行的首地址。a+1代表第1行的首地址。 指针及其应用 一般来说 a+i=a[i] a[i]=*(a+i) a[i]+j=a[i][j] a[i][j]=*(a[i]+j) 指针与二维数组 指针与二维数组 a 代表二维数组的首地址,第0行的地址 a+i 代表第i行的地址 *(a+i) 即 a[i] 代表第i行第0列的地址 *(a+i)+j 即 a[i]+j 代表第i行第j列的地址 *(*(a+i)+j ) 即 a[i][j] 代表第i行第j列的元素 指针与二维数组 多维数组的指针 多维数组的指针有以下两种 指向数组元素的指针变量。 指向数组行的指针变量。 指向数组元素的指针变量 用指针变量输出数组元素的值。 #include stdio.h void main() { int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}; int *p; for(p=a[0];pa[0]+12;p++) { if((p-a[0])%4==0)printf(\n); printf(%4d,*p); } printf(\n); } 指向数组行的指

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档