c语言程序设计 第8章_指针

c语言程序设计 第8章_指针

ID:43343606

大小:1.33 MB

页数:75页

时间:2019-10-08

c语言程序设计 第8章_指针_第1页
c语言程序设计 第8章_指针_第2页
c语言程序设计 第8章_指针_第3页
c语言程序设计 第8章_指针_第4页
c语言程序设计 第8章_指针_第5页
资源描述:

《c语言程序设计 第8章_指针》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、C语言程序设计教程(第2版)第8章指针一、基本数据类型整型、实型和字符型—单个数据处理。二、构造类型数组—处理相同数据类型的数据集合。三、指针是一种特殊的数据类型,通过它可以对基本类型变量、数组变量等灵活的进行访问。数据类型回顾1.数据在内存中的存储方式:前面已讲过,不同类型的数据在内存中所占用的内存单元是不相同的,如整型变量在内存中占2个字节,实型变量在内存中占4个字节等。2.内存单元的地址:每个内存单元有一个编号,内存单元的编号就称为该内存单元的地址。3.内存单元的内容:即内存单元中所存放变量的值。相关的一些基本概念变量与地址程序中:inti;floatk;内存中每个字节有一

2、个编号-----地址…...…...2000200120022005内存02003ik编译或函数调用时为其分配内存单元又如在程序中有如下的变量定义:inta=1,b=2;floatx=3.4,y=4.5;doublem=3.124;charch1='a',ch2='b';4.指针:5.指针变量:6.指针变量的值注:指针变量有时也简称为指针,此时的指针是特殊类型的变量,其内容是变量的地址。特别提示:要区分指针变量所指的值和变量的值。指针即为地址,一个变量的地址称为该变量的“指针”。指针是一常量。如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。指针变量是一特

3、殊类型的变量,其内容是地址。可以是变量的地址,也可以是其它数据结构的地址(如数组或函数的首地址)。指针变量的值(指针变量中存放的值)是指针(地址)。地址是内存单元的编号,每一个在生命周期内的变量在内存中都有一个地址,该地址不会因为其变量值的变化而变化。7.根据内存单元的地址访问内存单元的内容的方式(1)直接访问:(2)间接访问:变量的地址存放在另一个变量中,这种用来存放变量的地址的变量就是指针变量,通过指针所指向变量的访问方式称为“间接访问”方式。如:i_pointer=&i;i=10;(见右图)按变量地址存取变量值的方式称为“直接访问”方式。如用scanf(“%d,&d”,&a

4、,&b);表示将数据输入到变量的地址所指的内存单元中。这种按变量的地址存取变量值的方式就是“直接访问”的方式。指针变量另一个变量10i2000i_pointer200020018.1.1指针变量的定义指针变量的定义形式:[存储类型]数据类型*指针变量名[=初始值];如:inta,*p=a;p为指向整型变量的指针,p指向了变量a的地址。char*s=NULL;s为指向字符型变量的指针,p指向一个空地址。float*t;t为指向单精度浮点型变量的指针。说明:*表示这是一个指针变量;类型说明符用来指定指针变量所指向的变量的数据类型。8.1指针的概念注意:一个指针变量只能指向同类型的变

5、量,(如t只能指向单精度变量),不能时而指向一个单精度变量,时而又指向一个整型变量。8.1.2指针变量的使用必须先将指针与变量的地址相关联,然后才能使用指针。关联方式:①初始化;②赋值赋值格式:<指针变量名>=&<普通变量名>;例如:inti,*p;p=&i;或:inti,*p=&i;——→初始化方式关联结果:指针p指向了变量i,(变量i的地址赋给了指针p)。若:int*p=NULL;则表示p不指向任何存储单元。或指针变量名=另一已经赋值的指针变量;如:inta,*p1=&a,*p2;p2=p1;注:指针变量用于存放另一同类型的变量或其它数据结构的地址,因而不允许将任何非

6、地址类型的数据赋给它。如:p1=2000;就是非法的。i的地址pi的值iqi的地址又例如:inti,*p,*q;p=&i;q=p;示意图p=&i=&(*p)i=*p=*(&i)&与*运算符(1)含义:&(取地址运算符)*(指针运算符)含义:取指针变量所指向变量的内容单目运算符优先级:2结合性:自右向左(2)两者关系:互为逆运算(3)示例:…...…...2000200420062005整型变量i10变量p2001200220032000指针变量p----指针变量,它的内容是地址量,如上面为2000*p----指针的目标变量,它的内容是数据,如上面为10.&p---指针变量占用内存

7、的地址如上面为2004.含义:取变量的地址单目运算符优先级:2结合性:自右向左注意:如果在定义变量时变量名字前面带*,则所定义的变量为指针变量.例:intx,y,*p1;floatz,*p2;char*p3,w,*p4;左面的三条语句定义了四个一般变量:x,y,z,w,同时也定义了四个指针变量:p1,p2,p3,p4,其中p1只能用来存放整形变量的地址,p2只能用来存放浮点型变量的地址,p3,p4只能用来存放字符型变量的地址根据上面的定义,说明下面代码的对错:p1=2000;p1

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

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

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