《c语言程序设计基础》6指针ppt课件.ppt

《c语言程序设计基础》6指针ppt课件.ppt

ID:59412561

大小:549.00 KB

页数:72页

时间:2020-09-19

《c语言程序设计基础》6指针ppt课件.ppt_第1页
《c语言程序设计基础》6指针ppt课件.ppt_第2页
《c语言程序设计基础》6指针ppt课件.ppt_第3页
《c语言程序设计基础》6指针ppt课件.ppt_第4页
《c语言程序设计基础》6指针ppt课件.ppt_第5页
资源描述:

《《c语言程序设计基础》6指针ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第6章指针第6章指针本章内容6.2变量的指针和指针变量6.3指针运算6.4一维数组与指针6.1地址与指针6.5二维数组与指针第6章指针本章内容6.7指针变量作函数的参数6.8函数与指针6.9指向指针的指针变量6.6字符数组与指针6.10指针应用举例6.1地址与指针内存就是内部存储器,是由存储单元组成的。我们需要对它编号,这个编号就是内存地址。如果在程序中定义了一个变量,在对程序进行编译时,系统就会给这个变量分配具体的物理内存单元。虽然程序中是通过变量名来对内存单元进行存取操作的,其实程序经过编译以后已经将变量名转换为变量的地址,对变量值的存取都是通过地址进行的。这种按变量地址存取

2、变量值的方式称为“直接访问”方式。6.1地址与指针对应“直接访问”还有另外一种称之为“间接访问”的变量值存取方法,将变量的地址存放在另一个变量中,通过存放变量地址的变量存取变量的值。什么是指针呢?C语言规定变量的地址就是变量的指针。对于变量a和存放变量地址的变量a_pointer来讲,一个用于存放变量的数值258,一个用于存放变量的地址2000,在这里的a_pointer就是指针变量。6.1地址与指针内存地址:内存中存储单元的编号变量地址:系统分配给变量内存单元的起始地址变量地址起指向作用,因此形象称地址是变量的指针,即地址就是指针,指针就是地址变量地址,还隐含变量类型信息指针:

3、一个变量的地址就是该变量的指针指针变量:专门存放变量地址的变量6.1地址与指针整型变量i变量i_pointer…...…...1020002004200620052001200220032000指针变量指针变量i_pointer的内容(是地址)变量的地址整型变量i的内容指针6.1地址与指针变量的地址就是变量的指针。存放变量地址的变量是指针变量,它用来指向另一个变量。为了表示指针变量和它所指向的变量之间的联系,在程序中用“*”符号表示指向,它实际执行的是“间接访问”运算,如果已定义a_pointer为指针变量且存放a变量的地址,则*a_pointer是a_pointer所指向的变量

4、。若a变量存放的值为3,则a代表3,a_pointer代表a的地址,*a_pointer代表a即3。6.2变量的指针和指针变量本节内容6.2.2指针变量的引用6.2.1指针变量的定义6.2.1指针变量的定义定义指针变量的一般形式为基类型*指针变量名;下面都是合法的定义:float*pf;char*pc;可以用赋值语句使一个指针变量得到另一个变量的地址,从而使它指向该变量。pointer_i=&i;pointer_j=&j;将变量i的地址存放到pointer_i中,因此pointer_i就“指向”了变量i。6.2.1指针变量的定义在定义指针变量时要注意两点:①在定义指针变量时,指针

5、变量名前面加“*”表示该变量的类型为指针型变量。指针变量名是pointer_i、pointer_j,而不是*pointer_i、*pointer_j。但在使用指针变量时,指针变量名前面加“*”表示进行间接寻址操作。如有:i=3;j=*pointer_i;则j的值为3。一个指针变量只能指向同一个类型的变量,不能忽而指向一个整型变量,忽而指向一个实型变量。6.2.2指针变量的引用指针变量同普通变量一样,在使用之前要先定义,但需注意的是指针变量定义后,变量值不确定,应用前还必须先赋予具体的值。未经赋值的指针变量是不能使用的。未经赋值的指针变量叫做“野指针”,它的初始值是随机的。如果未经

6、赋值而对它随机指向的内存单元进行操作,可能产生严重后果。指针变量只能赋予地址,绝不能赋予任何其他数据,否则将引起错误。6.2.2指针变量的引用6.2.2.1指针变量的初始化指针变量初始化的一般形式为:基类型*指针名=初始地址值;在C语言中,变量的地址是由编译系统分配的,对用户完全透明,用户不知道变量的具体地址。下面是两个有关指针变量的运算符。&:取地址运算符*:指针运算符(或称间接访问运算符)inta;int*p=&a;//p指向a*p=10;//相当于a=10;6.2.2指针变量的引用#includemain(){charx,y;char*p1,*p2;x='

7、a';y='b';p1=&x;//把变量x的地址赋给p1p2=&y;//把变量y的地址赋给p2printf("%c,%c",x,y);printf("%c,%c",*p1,*p2);}6.2.2指针变量的引用下面对“&”和“*”运算符再作些说明:①如果已执行了语句pl=&x;&*pl的含义是什么?先进行*p1的运算,它就是变量x,再执行&运算。因此,&*pl与&x相同,即变量x的地址。②*&x的含义是什么?先进行&x运算,得x的地址,再进行*运算,即&x所指向的变量,也就

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

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

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