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

第9章指针及其应用.pptx

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

第9章;第9章指针及其应用;9.1指针的引入;9.1.1问题与引例;指针是存放内存地址的一种变量类型,也就是说,指针这个变量是用来说明某个变量在内存中的位置,也可以认为指针是指向另一个变量的变量。

指针是C语言的重要特色,也是C语言的精华。;指针的主要功能与特点:

正确灵活地运用指针可以有效地表示复杂的数据结构,方便地使用数组和字符串;

可以在函数间进行数据传递;

可以直接处理内存地址、动态分配内存;

可以设计出结构紧凑、效率更高的应用程序。;9.2指针与指针变量;9.2.1地址与指针;1.内存的地址

程序运行时,程序的所有代码和数据都要事先被调入内存,由操作系统为它们分配特定的内存空间。

内存是以字节为单位的一片连续存储空间,为了便于访问,给每个字节一个唯一的编号,这些单元编号称为内存单元的“地址”。系统的内存就像是带有编号???小房间,使用内存就需要得到房间编号。

变量的数据就存放在地址所标识的内存单元中,变量中的数据其实就相当于仓库中各个房间存放的货物。;1.内存的地址

系统的内存就像是带有编号的小房间,使用内存就需要得到房间编号。

定义一个整型变量i,整型变量需要4个字节,所以编译器就为变量i分配编号1000到1003。;1.内存的地址

地址是内存区中对每个字节的编号。下图中的1000,1004等就是内存单元的地址,而0,1则是内存单元的内容,也就是说基本整型变量i在内存中的地址是从1000开始的。问变量j的地址是什么?;2.变量的地址

一般微机使用的C语言系统为整型变量分配2个字节(C++中整型变量占用4个字节),为实型变量分配4个字节,为字符型变量分配1个字节,为双精度类型变量分配8个字节。当某一变量被定义后,其内存中的地址也就确定了。

思考:变量在内存中是如何存放的?又是如何使用的呢?;【例9.1】不同类型的变量的存储形式。

#includestdio.h

voidmain()

{inti=5,j=10;//定义整型变量i,j,并赋值为5和10

floatx=0.618,y=3.14159;//定义x,y,并赋值为0.618和3.14159

charc1=m,c2=N;//定义c1,c2,并赋值为m和N

int*p1,*p2;//定义指向整型变量的指针变量p1,p2

p1=i;p2=j;//将p1指向i,p2指向j

printf(i=%d,j=%d\n,i,j);

printf(x=%f,i=%d\n,x,*p1);

};inti=3,j=6,k;;3.寻址方式

有了指针,对变量访问有直接寻址和间接寻址两种方式。

(1)直接寻址

直接寻址是指直接利用变量名进行存取的方式。

(2)间接寻址

间接寻址是将变量的地址存放在另一种类型的变量中,通过这种新的变量类型来得到变量的值。;inti=3,j=6,k;;inti=3,j=6,k;;;4.指针和指针变量

指向就是通过地址来体现的,一个变量的地址称为该变量的“指针”。

例如,地址2000是变量i的指针

如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”

例如:i_pointer就是一个指针变量。指针变量就是地址变量,用来存放地址的变量,指针变量的值是地址(即指针)。;注意:“指针”和“指针变量”是不同的概念

可以说变量i的指针是2000,而不能说i的指针变量是2000

指针是一个地址,而指针变量是存放地址的变量。;9.2.2创建指针;9.2.2创建指针;9.2.3指针变量赋值;9.2.3指针变量赋值;9.2.3指针变量赋值;9.2.3指针变量赋值;9.2.3指针变量赋值;9.2.3指针变量赋值;9.2.3指针变量赋值;9.2.4指针变量的运算;9.2.4指针变量的运算;9.2.4指针变量的运算;9.2.4指针变量的运算;【例9.3】指针运算符的运用。

#includestdio.h//头文件

voidmain()//主函数

{

inti;//声明普通变量

int*pi;//声明指针变量

pi=i;//指针变量赋值

i=10;//普通变量i赋初值

printf(i=%d\t*pi=%d\n,i,*pi);//输出变量值及指针所指向变量的值

文档评论(0)

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

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

1亿VIP精品文档

相关文档