C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt

C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt

ID:50043621

大小:261.50 KB

页数:55页

时间:2020-03-08

C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt_第1页
C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt_第2页
C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt_第3页
C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt_第4页
C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 刘嘉敏ch07 指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章指针7.1指针概述7.2指针与数组7.3指针与函数7.4复杂指针7.5内存的动态分配和指向它的指针变量第七章指针1.地址、指针和指针变量如果在程序中定义了一个变量,在对程序进行编译时,系统就会给该变量分配内存单元编译系统根据程序中定义的变量类型,分配一定长度的空间例如,VC++为整型变量分配4个字节,对单精度浮点型变量分配4个字节,对字符型变量分配1个字节7.1指针概述第七章指针1.地址、指针和指针变量内存区的每一个字节有一个编号,这就是“地址”,它相当于旅馆中的房间号。在地址所标识的内存单元中存放数据,这相当于旅馆房间中居

2、住的旅客一样。由于通过地址能找到所需的变量单元,我们可以说,地址指向该变量单元。将地址形象化地称为“指针”7.1指针概述第七章指针1.地址、指针和指针变量务必弄清楚存储单元的地址和存储单元的内容这两个概念的区别例如:7.1指针概述第七章指针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=&i;

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

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

5、针1.地址、指针和指针变量“指针”和“指针变量”是不同的概念可以说变量i的指针是2000,而不能说i的指针变量是2000指针是一个地址,而指针变量是存放地址的变量7.1指针概述第七章指针定义指针变量的一般形式为:类型*指针变量名;如:int*pointer_1,*pointer_2;int是为指针变量指定的“基类型”基类型指定指针变量可指向的变量类型如pointer_1可以指向整型变量,但不能指向浮点型变量2.指针变量的定义7.1指针概述第七章指针下面都是合法的定义和初始化:float*pointer_3;char*pointer

6、_4;inta,b;int*pointer_1=&a,*pointer_2=&b;2.指针变量的定义7.1指针概述第七章指针pointer_3=2000;错误pointer_3=&a;错误*pointer_1=&a;错误pointer_1=&a;正确3.指针变量的引用在引用指针变量时,可能有三种情况:给指针变量赋值。如:p=&a;引用指针变量指向的变量。如有p=&a;*p=1;则执行printf(“%d”,*p);将输出1引用指针变量的值。如:printf(“%o”,p);7.1指针概述第七章指针*p相当于a以八进制输出a的地址使

7、p指向a3.指针变量的引用7.1指针概述第七章指针要熟练掌握两个有关的运算符:(1)&取地址运算符。&a是变量a的地址(2)*指针运算符(“间接访问”运算符)如果:p指向变量a,则*p就代表a。k=*p;(把a的值赋给k)*p=1;(把1赋给a)1)赋值运算对指针变量进行赋值运算,所赋的值一定要是一个地址。对指针进行赋值运算实际上是在确定指针变量的指向或者是重新改变指针的指向。例如:int*px1,*px2,*pt,x=1;px1=&x;//将变量x的地址赋给指针变量px1px2=px1;//将指针px1赋给指针px2pt=NU

8、LL;//赋空指针给pt,此时pt不指向任何对象4.指针运算7.1指针概述第七章指针2)取地址运算在C语言中,取地址运算的运算符为“&”。它是一个单目运算符,结合性为自右向左,其功能是取&后面变量或数组元素的地址。4.指针运算7.1指针概述第七章指

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

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

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