最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt

最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt

ID:62067777

大小:1.33 MB

页数:87页

时间:2021-04-14

最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt_第1页
最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt_第2页
最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt_第3页
最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt_第4页
最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt_第5页
资源描述:

《最新C语言程序设计教程-第8节(新)[1]幻灯片.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言程序设计教程-第8节(新)[1]8.1指针与指针变量8.1.1指针的概念1.内存与变量地址内存地址:内存是计算机用于存储数据的存储器,以一个字节作为存储单元,为了便于访问,给每个字节单元一个唯一的编号,第一字节单元编号为0,以后各单元按顺序连续编号,这些单元编号称为内存单元的地址。变量地址:变量所分配存储空间的首字节单元地址(字节单元编号)。2计算机教学中心——李勇C语言程序设计教程2.变量的三要素:名字、类型与值每个变量都通过变量名与相应的存储单元相连系,具体分配哪些单元给变量,由C编译系统完成变量名到对应内存单元地址的变换。变量分配

2、存储空间的大小由类型决定。变量的值则是指相应存储单元的内容。3.内存存取方式直接存取:把直接按变量名或地址存取变量值的方式称为“直接存取”方式。间接存取:通过定义一种特殊的变量专门存放内存或变量的地址,然后根据该地址值再去访问相应的存储单元。3计算机教学中心——李勇C语言程序设计教程(1)指针运算符与地址运算符与指针引用有关的两个运算符:&与*。&:取地址运算符*:指针运算符,或称指向运算符、间接访问运算符。指针指向的对象的表示形式:*指针变量此处*是访问指针所指对象的运算符,与指针定义时的*不同。2.指针变量初始化7计算机教学中心——李勇C

3、语言程序设计教程(2)指针变量初始化若有定义:inta,*p;语句仅仅定义了指针变量p,但指针变量并未指向确定的变量(或内存单元)。因为这些指针变量还没有赋给确定的地址值,只有将某一具体变量的地址赋给指针变量之后,指针变量才指向确定的变量(内存单元)。指针变量初始化:在定义指针时同时给指针一个初始值如:inta,*p=&a;40003a(4000)pa*pa8计算机教学中心——李勇C语言程序设计教程(3)指针变量的引用①*指针变量名——代表所指变量的值。②指针变量名——代表所指变量的地址。有定义:inta,*p=&a;用*p来表示p指向的对象

4、a,*p与a是等价的。*p可以象普通变量一样使用。例如:a=12;*p=12;scanf("%d",&*p);scanf("%d",p);printf(“%d%d”,*p,a);注意:*与&具有相同的优先级,结合方向从右到左。这样,&*p即&(*p),是对变量*p取地址,它与&a等价;p与&(*p)等价,a与*(&a)等价。9计算机教学中心——李勇C语言程序设计教程8.1.3指针运算1.指针的赋值运算(1)将变量地址值赋给指针变量,使指针指向该变量。设有如下定义:inta,b,*pa,*pb;float*pf;第一行定义了整型变量a,b及指针

5、变量pa,pb。pa、pb还没有被赋值,因此pa、pb没有指向任何变量,下面语句完成对pa,pb的赋值:pa=&a;pb=&b;10计算机教学中心——李勇C语言程序设计教程例如:intj=2,k=5;int*pointer1,*pointer2;pointer1=&j;pointer2=&k;&jpointer12j&kpointer25k11计算机教学中心——李勇C语言程序设计教程(2)相同类型的指针变量间的赋值pa与pb都是整型指针变量,它们间可以相互赋值,如:pb=pa;即pa,pb都指向变量a,此时a、*pa、*pb是等价的。指针指向

6、变化如下图:注意:只有相同类型的指针变量才能相互赋值,如pf=pa;是不允许的。因为pa是整型指针,pf是浮点型指针。&a&bpapba,*pab,*pb&a&apapba,*pa,*pbb12计算机教学中心——李勇C语言程序设计教程(3)给指针变量赋空值给指针变量赋空值,说明该指针不指向任何变量。“空”指针值用NULL表示,NULL是在头文件stdio.h中预定义的常量,其值为0,在使用时应加上预定义行,如:#include"stdio.h"int*pa=NULL;亦可以用下面的语句给指针赋“空值”:pa=0;或:pa=’’;这里指针p

7、a并非指向0地址单元,而是具有一个确定的“空值”,表示pa不指向任何变量。注意:指针虽然可以赋值0,但却不能把其它的常量地址赋给指针。例如:pa=4000;是非法的。13计算机教学中心——李勇C语言程序设计教程例8.1指针定义与初始化main(){inta,b;int*pointer_1,*pointer_2;a=100;b=10;pointer_1=&a;pointer_2=&b;printf("%d,%d",a,b);printf("%d,%d",*pointer_1,*pointer_2);}14计算机教学中心——李勇C语言程序

8、设计教程程序运行结果:100,10100,10&a&bbpointer_1pointer_2a*pointer_1*pointer_215计算机教学中心——李勇C语

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

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

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