计算机二级C语言辅导 第八章课件.ppt

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

第八章;指针的概念; 凡是程序中定义的变量,在编译时系统都给他们分配相应的存贮单元,VC6.0系统给短整型分配2个字节,给整形和实型分配4个字节,每个变量所占的存贮单元都有确定的地址,具体地址在编译时分配。; C程序的变量所存放的数据:; ? 占有一定长度的内存 单元 如:int x; x占4字节、4个单元;例: short int a=3, b=4; float c=4.5,d=8.6; char e=‘x’,f=‘y’;;一、数据在内存中的存放;当程序中要用它们的值时: y=i+j+k;;如:用pi, pj, pk来存放i, j, k的地址;直接访问:通过变量名或地址访问一个变量的方式为“直接访问”。;8.2 指针和地址;指针变量的定义与初始化:;如: int ?p; (p为指向整型变量的指针) char *s;(s为指向字符型变量的指针) float *t;(t为指向浮点型变量的指针);重要概念: 指针变量也有各种类型(如上面所示),但指针变量的值只能是整型值。;若有:float *t;且 *t=3.6; 设t的地址为2000,则t+1?2004;例:k 取变量k地址 c[2] 取数组元素c[2]的地址 (st.name) 取结构st变量name项的地址 233, (i+233) ;存取指针变量所指向变量(目标变量)的值:用指针运算符“ * ”, 即:*p 为 i。 ?, 为同级运算符,结合性自右至左。 当?或?在一起时,具有抵消作用。;指针变量——不要谈”指”色变;首先——搞定*p;有关*p的小结;小考一下,如何?;指针变量能参加运算吗?;C语言中有关指针的运算符 ◆ 运算符: 取地址运算符 ◆ * 运算符: 指针运算符或指明运算符,*p代表p所指变量 注意:此处的*p与定义指针变量时用的*p的含义是不同的。;指针变量初始化 变量声明时赋值 ;例 指针赋值运算。 # include stdio.h main() { int a,b; a=100;b=200; int *pa, *pb; /*定义int类型的指针变量*/ pa=a; /*将变量a的地址赋给指针变量 pa */ ; pb=b; /*将变量b的地址赋给指针变量pb */ printf(*pa=%d, *pb=%d\n, *pa, *pb); pa=pb; /*将指针pb赋给pa,两者都指向变量b*/ printf(*pa=%d, *pb=%d\n, *pa, *pb); } ;2. 指针变量算术运算;(2) 指针和整数可以进行加减;3. 指针变量的关系运算 ;指针变量的初始化和指针所指的变量 一般形式:[存储类型] 数据类型 *指针名=初始地址值;;例 main( ) { int i=10; int *p; *p=i; printf(“%d”,*p); };空指针 ;例;main( ) { int *p1,*p2,*p,i1=3,i2=5; p1=i1; p2=i2; p=p1; p1=p2; p2=p; printf(“%d, %d\n”,*p1,*p2); };main( ) { int *p1,*p2,i,i1,i2; i1=3; i2=5; p1=i1; p2=i2; i=*p1; *p1=*p2; *p2=i; printf(“i1=%d, i2=%d\n”,i1,i2); };4、指针使用的几个细节。;§8.2 指针与函数; 在前面介绍函数时,已经介绍了C语言的函数的参数传递是以“传值”方式进行变量参数的信息传递,被调函数不能直接改变主调函数中参数的值。 当引入指针的概念后,我们可以在主调函数中将要改变内容的变量地址作为参数传递给被调函数,而被调函数执行时,就按这个地址去访问变量参数的值,相应的参数要被说明成指针类型。;例如:main( ) { void sub(int *px, int *py ); int x, y; sub(x,y); printf(“%d,%d\n”,x,y); } ;1. 指针作形参,实参为变量地址或指针;main

文档评论(0)

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

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

1亿VIP精品文档

相关文档