C语言程序设计第九章 善于利用指针ppt课件.ppt

C语言程序设计第九章 善于利用指针ppt课件.ppt

ID:58885904

大小:401.50 KB

页数:66页

时间:2020-09-30

C语言程序设计第九章 善于利用指针ppt课件.ppt_第1页
C语言程序设计第九章 善于利用指针ppt课件.ppt_第2页
C语言程序设计第九章 善于利用指针ppt课件.ppt_第3页
C语言程序设计第九章 善于利用指针ppt课件.ppt_第4页
C语言程序设计第九章 善于利用指针ppt课件.ppt_第5页
资源描述:

《C语言程序设计第九章 善于利用指针ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C程序设计主讲人:袁丽燕大里仁基础教学部第九章:善于利用指针1指针的概念和指针变量2数组指针和指向数组的指针变量3字符串指针和指向字符串的指针变量4指针数组和指向指针的指针5指针小结地址指针的基本概念一、指针变量如何定义指针变量如何引用指针变量指针变量作为函数参数引:指针是什么如果在程序中定义了一个变量,在对程序进行编译时,系统就会给该变量分配内存单元编译系统根据程序中定义的变量类型,分配一定长度的空间例如,VC++为整型变量分配4个字节,对单精度浮点型变量分配4个字节,对字符型变量分配1个字节务必弄清楚存储单元的地址和存储单元的内容这

2、两个概念的区别例如:内存区的每一个字节有一个编号,这就是“地址”,它相当于旅馆中的房间号。在地址所标识的内存单元中存放数据,这相当于旅馆房间中居住的旅客一样。由于通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。将地址形象化地称为“指针”inti=3,j=6,k;printf(“%d”,i);通过变量名i找到i的地址2000,从而从存储单元读取3inti=3,j=6,k;k=i+j;从这里取3将9送到这里从这里取6直接存取inti=3,j=6,k;定义特殊变量i_pointer将i的地址存到这里间接存取i_pointer=&

3、i;*i_pointer=50;50i200032000i_pointer*i_pointer20003直接存取间接存取为了表示将数值3送到变量中,可以有两种表达方法:(1)将3直接送到变量i所标识的单元中,例如:i=3;(2)将3送到变量i_pointer所指向的单元(即变量i的存储单元),例如:*i_pointer=3;其中*i_pointer表示i_pointer指向的对象指向就是通过地址来体现的假设i_pointer中的值是变量i的地址(2000),这样就在i_pointer和变量i之间建立起一种联系,即通过i_pointer能

4、知道i的地址,从而找到变量i的内存单元由于通过地址能找到所需的变量单元,因此说,地址指向该变量单元将地址形象化地称为“指针”。意思是通过它能找到以它为地址的内存单元一个变量的地址称为该变量的“指针”例如,地址2000是变量i的指针如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”i_pointer就是一个指针变量。指针变量就是地址变量,用来存放地址的变量,指針变量的值是地址(即指针)“指针”和“指针变量”是不同的概念可以说变量i的指针是2000,而不能说i的指针变量是2000指针是一个地址,而指针变量是存放地址的变

5、量定义指针变量定义指针变量的一般形式为:类型*指针变量名;其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向的变量的数据类型如:int*pointer_1,*pointer_2;int是为指针变量指定的“基类型”基类型指定指针变量可指向的变量类型如pointer_1可以指向整型变量,但不能指向浮点型变量如:int*p1;表示p1是一个指针变量,它的值是某个整型变量的地址。或者说p1指向一个整型变量。至于p1究竟指向哪一个整型变量,应由向p1赋予的地址来决定。引用指针变量在引用指针变量时,可能有三种情

6、况:给指针变量赋值。如:p=&a;引用指针变量指向的变量。如有p=&a;*p=1;则执行printf(“%d”,*p);将输出1引用指针变量的值。如:printf(“%o”,p);使p指向a*p相当于a以八进制输出a的地址要熟练掌握两个有关的运算符:(1)&取地址运算符。&a是变量a的地址(2)*指针运算符(“间接访问”运算符)如果:p指向变量a,则*p就代表a。k=*p;(把a的值赋给k)*p=1;(把1赋给a)设有指向整型变量的指针变量p,如要把整型变量a的地址赋予p可以有以下两种方式:1.指针变量初始化的方法inta;int*p

7、=&a;2.赋值语句的方法inta;int*p;p=&a;注:1.不允许把一个数赋予指针变量,故下面的赋值是错误的:int*p;p=1000;2.被赋值的指针变量前不能再加“*”说明符,如写为*p=&a也是错误的。假设:inti=200,x;int*ip;我们定义了两个整型变量i,x,还定义了一个指向整型数的指针变量ip。i,x中可存放整数,而ip中只能存放整型变量的地址。我们可以把i的地址赋给ip:ip=&i;此时指针变量ip指向整型变量i,假设变量i的地址为1800,这个赋值可形象理解为下图所示的联系。以后我们便可以通过指针变量ip

8、间接访问变量i,例如:x=*ip;运算符*访问以ip为地址的存储区域,而ip中存放的是变量i的地址,因此,*ip访问的是地址为1800的存储区域(因为是整数,实际上是从1800开始的两个字节),它就是i所占

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

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

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