VC程序设计课件2011版 第8章 指针.ppt

VC程序设计课件2011版 第8章 指针.ppt

ID:51619033

大小:1.57 MB

页数:72页

时间:2020-03-26

VC程序设计课件2011版 第8章 指针.ppt_第1页
VC程序设计课件2011版 第8章 指针.ppt_第2页
VC程序设计课件2011版 第8章 指针.ppt_第3页
VC程序设计课件2011版 第8章 指针.ppt_第4页
VC程序设计课件2011版 第8章 指针.ppt_第5页
资源描述:

《VC程序设计课件2011版 第8章 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章 指针和引用学习目标掌握指针和引用的的基本概念。包括指针和引用的定义方法与初始化等。搞清楚指针与数组下标的关系。掌握指针和引用作为函数的参数的用法.搞清楚引用传递与值传递的区别。掌握内存的动态申请与释放的方法。掌握链表的基本概念,以及对链表的各种操作。8.1.1地址的概念内存就是内部存储器,是由存储单元组成的。它的特点是存储单元连续。存储单元的最小单位是字节。与每个住房都有门牌号码一样,为了访问内存中的某个存储单元,则为它们编号,这种编号称为内存地址。通过地址我们就能访问该地址所标识的存储单元

2、。……0121000内容地址……218.1.1地址的概念在程序中定义一个变量实际就是给了一块内存,该块内存的大小由变量的类型决定。例如在32位的操作系统中,整型占4个字节……变量在内存中总是占连续的几个字节(字符型占1个字节),开始字节的地址就是变量的地址,一旦定义就不再变化。这个地址对用户而言应是透明的。8.1.1地址的概念inti;charch;floatf1;i=2;ch=‘a’;f1=3.14;2‘a’3.14地址变量100010041005ichf14字节1字节4字节8.1.1地址的概念整

3、型变量i,j,k;在编译时为变量分配内存(2)给变量赋值为i=3;j=6;k=9;(1)假设变量i,j,k被分配的内存地址分别为2000,2004,2008(3)通常,在程序中通过变量名对变量进行存取。200020042008变量i变量j变量k内存中用户数据区。。。。。。36920003010内存地址编号变量p其实程序经过编译后已将变量名转换为变量的地址,对变量值的存取都是通过变量的地址进行的。8.1.1地址的概念(1)直接访问方式按变量地址存取变量值的方式。如果读取变量i的值,直接到为变量i分配的

4、存储单元(2000、2001、2002、2003字节)中取出i的值(3)即可。(2)间接访问方式先将变量i的地址存放在另一个变量p中,如果读取变量i的值,先找到变量p,从p中取出内容(2000,即变量i的起始地址),然后到2000、2001、2002、2003字节中取出i的值(3)。即通过变量p访问为变量i分配的内存单元。访问变量的两种方式:8.1.1地址的概念直接访问示意图间接访问示意图表示将数值3送到变量i中,可有两种表达方法:(1)将3送到变量i所标志的单元中。即直接访问方式(2)将3送到变量

5、p所指向的单元(变量i)中。即间接访问方式i32000i320002000p注意:我们并不关心变量p的存储地址,对变量p的访问属于直接访问。8.1.2指针变量变量的地址就是指针。若一个变量专门存放内存单元的地址(指针),则该变量为指针变量。变量地址(指针)指针变量变量值变量指向地址存入指针变量8.1.2指针变量指针定义格式:数据类型*指针变量名1《,*指针变量名2…》;所指对象所具有的数据类型。指针变量只能存放某一种数据类型的变量,由此可将指针变量划分为整型、实型、字符型指针变量等。8.1.2指针变

6、量int*p,x,y;x=2;y=3;这里是示意性的,在大部分系统,说明的同类型变量是连续的一段空间,不是同类的,可能连续,也可能不连续。与编译系统有关。(y)3(x)2(p)100010041008对一个计算机系统,表示一个地址所需的位数是不变的,比如32位的系统,意味着地址也只要32bit(四个字节),所以所有的指针变量所需的字节数是相同的。8.1.2指针变量定义指针的注意问题:例:int*p1,*p2;变量名前面的“*”不能省略;定义中“*”表示所定义的变量是指针变量,但指针变量名是p1,p2

7、,而非*p1,*p2指针变量只能指向定义时所规定类型的变量。定义指针变量后,并未确定该变量指向何处,也就是说该变量是不确定的。在引用指针变量前,必须首先让它指向一个变量,这一点非常重要。8.1.3指针的运算指针的&和*运算:变量取地址运算符&的作用是取变量的地址。例如:&i表示求变量i的地址;递引用(取内容)运算符*的作用是取指针所指向变量的内容。例如:*p表示求指针p所指向变量的内容。&运算和*运算是一对互逆运算。&运算符和*运算符优先级相同,按自右向左方向结合。&*p和*&i8.1.3指针的运算

8、inti;int*p;i=3;p=&i;*p=15;(p)10001004(i)3(p)1000(i)15*p=15等价于i=158.1.3指针的运算指针赋值运算:使用&运算符把地址值赋值给指针变量int*p,x,y;doubleu=3.4;x=2;y=3;p=&x;p=&y;p=&u;//错误(y)3(x)2(p)10001000100410081020(u)3.4(y)3(x)2(p)10041000100410081020(u)3.4(y)3(x)2(p)100

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。