《地址和指针》PPT课件.ppt

《地址和指针》PPT课件.ppt

ID:52275338

大小:243.01 KB

页数:19页

时间:2020-04-03

《地址和指针》PPT课件.ppt_第1页
《地址和指针》PPT课件.ppt_第2页
《地址和指针》PPT课件.ppt_第3页
《地址和指针》PPT课件.ppt_第4页
《地址和指针》PPT课件.ppt_第5页
资源描述:

《《地址和指针》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第七章 地址和指针主要内容地址和指针的概念指针变量的定义给指针变量赋值对指针变量的操作指针在函数方面的应用7.1地址和指针的概念7.1.1地址和指针的概念1.“地址”的概念在计算机里每一个存储数据的存储单元也都必须具有一个唯一的“地址”,以示区别不同存储单元的位置。“地址”是用于确定对象的位置,存储的数据是反映具体的内容。2.存储单元“地址”的表示在计算机中存储数据的存储单元,是根据存储数据类型的不同而不同。inta;a占2个单元分别为1012,1013floatb;b占4个单元,1014~1017charc;c占1个单元,10181012101310141015101

2、610171018101910201021abcXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX3.“指针”的概念在计算机中用户获取某一地址存储单元内的数据有两个方式:第一种方式是直接访问:根据变量名,直接获取变量存储单元中的数据。如:printf(“%d”,a);第二种方式是间接访问:知道存储单元的“地址”,再根据已知地址获取存储单元中的数据指针变量:用于存储其他变量的地址的变量。只能存储地址,不能存储普通数据。10121012变量a10121013指针变量p2002指针变量p20027.1.2为什么使用指针例7.1欲想调用fun函数,计算出两个

3、数相加和相减的值,然后在main函数中显示结果。fun(intx,inty){intadd=0,sub=0;add=x+y;sub=x-y;}main(){inta,b,add=0,sub=0;scanf(“%d%d”,&a,&b);printf(“a=%d,b=%d”);fun(a,b);printf(“%d+%d=%d”,a,b,add);printf(“%d-%d=%d”,a,b,sub);}例7.2fun(intx,inty,int*padd,int*psub){*padd=x+y;*psub=x-y;}main(){inta,b,add=0,sub

4、=0;scanf(“%d%d”,&a,&b);printf(“a=%d,b=%d”);fun(a,b,&add,&sub);printf(“%d+%d=%d”,a,b,add);printf(“%d-%d=%d”,a,b,sub);}通过指针可以非常方便地实现在调用函数时修改或传回多个数值。85原值0新值13原值0新值3main函数abaddsub变量add的地址是1001变量sub的地址是10018510012001Fun函数xy指针变量padd指针变量psub调用fun函数时0131001add调用前调用后10017.2指针变量的定义和指针变量的基类型7

5、.2.1指针变量的定义和指针变量的基类型定义指针变量的一般形式如下:类型名  *指针变量名1,*指针变量名2,…..;“*”说明符用来说明所定义的变量是指针变量。例如:int*pi,*pj;说明了pi和pj是两个指向整型变量的指针,也就是说变量pi和pj中只能存放int类型变量的地址。这时称int是指针变量pi和pj的基类型。double*pd;定义了一个指向双精度类型变量的指针。char*s1,s2;定义了一个指向字符型变量的指针和一个字符变量int**p;定义了一个指向指针的指针变量p。该指针变量p只能存放基类型为int类型的指针变量的地址。200010105101

6、0aq20002050p7.2.2指针变量的基类型的作用在C语言中,不同的数据类型变量系统为它们开辟的存储空间的字节数是不同的。int类型的数据存储空间是2个字节,float类型的数据存储空间是4个字节,char类型的数据存储空间是1个字节。系统表示每一个存储空间的地址时,是取该存储空间的第1个字节的地址作为该变量存储空间的地址。根据指针变量p中存放的“地址”,只能寻找到变量a第1个字节的存储空间,它并不是变量a的原值,因为变量a原值是通过2个字节来 数据。例int*p;p=&a;1012变量a10121013指针变量p20027.3给指针变量赋值7.3.1使指针指向一

7、个对象1.通过求地址运算符(&)把一个变量的地址赋给指针变量“&”是求地址运算符,该运算符为单目运算符,用于求变量的地址,且该变量必须为内存变量。例如:intk=1,j=2,*q1,*q2,*p;floatx=4.5;q1=&k;q2=&j;如:p=&x;则是错误的。2.同类型指针变量之间可以直接赋值可以把指针变量的值赋给指针变量,但一定要确保这两个指针变量的基类型是相同的。如:p=q1;7.3.2给指定变量赋“空”值当指针变量没有指向的对象时,可以给指针变量赋NULL值,此值为空值。例如:int*p;p=NULL;NULL是在stdio

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

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

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