C语言程序设计 王伟 第7章

C语言程序设计 王伟 第7章

ID:40238542

大小:658.00 KB

页数:61页

时间:2019-07-28

C语言程序设计 王伟 第7章_第1页
C语言程序设计 王伟 第7章_第2页
C语言程序设计 王伟 第7章_第3页
C语言程序设计 王伟 第7章_第4页
C语言程序设计 王伟 第7章_第5页
资源描述:

《C语言程序设计 王伟 第7章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章指针本章目录7.1指针的概念7.2指针变量和函数7.3指针变量和数组7.4指针数组指针是C语言的一种数据类型,在C语言中处于重要的地位。正确、灵活地应用指针可以有效地表示复杂的数据结构、动态地分配内存、方便地使用字符串、高效地使用数组。熟练地应用指针可以使C程序简洁、紧凑、应用效果好。7.1指针的概念指针的概念包括指针和指针变量的关系、指针和函数、指针和数组的使用等。7.1.1指针和指针变量的关系一个变量的地址称为该变量的指针。1.地址指内存中存储单元的编号:1)计算机硬件系统的内存储器中,拥有大量的存储单元(容量为1字节)。为了方便管理,必须为每一个存储单元编号

2、,这个编号就是存储单元的“地址”。每个存储单元都有一个唯一的地址。2)在地址所标识的存储单元中存放数据。注意:内存单元的地址与内存单元中的数据是两个完全不同的概念。内存单元的编号(地址),与变量名对应。内存单元的内容:即变量的值。7.1指针的概念到目前我们学过的基本数据类型int型、float型、double型、char型等,内存分配的存储单元分别是2个字节、4个字节、8个字节、1个字节等。前面我们已经介绍了变量的概念,每个变量都有自己的存储地址。定义变量的同时,把存储单元的起始地址作为变量的地址(指针)。指针变量指专门存放变量地址的变量。为了更好的理解指针和指针变量,

3、下面举例说明:inta;编译系统会为它分配2个字节存储单元即1000H和1001H,1000H就是变量a的地址。如果有一个变量存放变量a的地址,那这个变量就是指针变量pa。如图7-17.1指针的概念我们可以直接给变量a赋初值2,即通过变量a的地址访问a,这种方式称“直接访问”。当然还可以通过指针变量pa访问变量a,这种访问方式称“间接访问”。10001000H1001H变量a指针变量pa……图7-17.1指针的概念7.1.2指针变量定义定义指针变量的一般形式为基类型*指针变量名指针变量与普通变量类似,在程序中若要使用指针变量,必须先进行定义后使用。例如:int*p1,i

4、;(定义p1为指向整型变量的指针变量)char*p2,c;(定义p2为指向字符型变量的指针变量)float*p3,f;(定义p3为指向实型变量的指针变量)int、char、float分别称为指针变量p1、p2、p3的“基类型”,7.1指针的概念“基类型”只是指指针变量所指变量的类型,不是指针变量的类型。指针变量只是存放指向变量的地址,由于内存地址都是整型常量,所以指针变量在内存中只占2个字节。由上可知,定义指针变量的同时也可以定义其他类型的变量,它们在语法上的差别仅在于前者在变量名多了一个“*”号。要弄清楚指针变量的含义和作用,还必须弄清楚以下几个概念。1.指针变量名:

5、指针变量名不包括“*”号,因为“*”号不能用于标识符。因此,在*p1中,“*”和p1不是一个整体,不要把*p2、*p3等看作指针变量名,指针变量名是p2、p3等。2.指针变量的值:其初值不定,当初始化或赋值后,其值表示另一个变量的地址。7.1指针的概念7.1.3和指针有关运算符指针运算包括两个运算符1.取地址运算符(&)单目运算符(&)用来求出运算对象的地址,利用它可以把一个变量的地址赋给指针变量。可以使用不同的方法给一个指针变量赋值。例如有定义和赋值:inta=5,*pa;pa=&a;将变量a的地址赋给指针变量pa,也就是使pa指向了变量a。7.1指针的概念2.指针运

6、算符(*)也叫间接访问运算符,单目运算符,当它和指针变量参与运算时,表示指针变量所指的内容,即实现“取内容”操作。inta=5,b,*pa;pa=&a;若b=*pa-1;则b=4;注意:*在不同的地方作用有时是不一样的。若出现在变量定义的部分,*说明pa是指针变量;出现在其他操作部分中*pa表示pa所指向的变量a。3.取地址运算符(&)和指针运算符(*)互为逆运算。7.1指针的概念7.1.4、指针变量赋值(初始化)可以使用不同的方法给一个指针变量赋值。1.通过取地址运算符(&)获得地址值例如有如下定义和赋值:inta=5,*p,*q;p=&a;它建立了如图7-2所示的逻

7、辑关系pa&a5图7-2因此当有语句:p=&a;时,scanf((″%d″,&a);和scanf(″%d″,p)是等价的。7.1指针的概念2.通过指针变量获得地址值可以通过赋值运算,如图7-3。把一个指针变量中的地址值赋给另一个指针变量,从而使这两个指针变量指向同一地址。例如,若有上面的定义,则语句:q=p;使指针变量q中也存放了变量a的地址,也就是说指针变量p和q都指向了整型变量a。使用时应注意:赋值号两边指针变量的基类型必须相同。paq&a5&a图7-37.1指针的概念3.给指针变量赋“空”值p=NULL;NULL是在stdio.h头

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

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

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