《c进阶指针结构体》PPT课件

《c进阶指针结构体》PPT课件

ID:45086631

大小:527.00 KB

页数:48页

时间:2019-11-09

《c进阶指针结构体》PPT课件_第1页
《c进阶指针结构体》PPT课件_第2页
《c进阶指针结构体》PPT课件_第3页
《c进阶指针结构体》PPT课件_第4页
《c进阶指针结构体》PPT课件_第5页
资源描述:

《《c进阶指针结构体》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言进阶11.数据在内存中的存储(2)地址:存储单元的编号2000200120022003200420052006200720082009(1)变量定义:为变量分配存储单元,并记录变量名与存储单元地址之间的对应关系。如:inti,j,k;i=3,j=6,k=9;ijk369一、指针(3)内容:存储单元中存放的数据2指针:变量在内存储单元的起始地址。指针变量:用来存放地址的变量。定义方法:基类型标识符*变量名;指向:通过地址建立起来的一种联系。如:inti;/*定义了整型变量i*/int*p;/*定义指向整型变量i的指针变量p*/p=&i;/*将变量i的指针赋给指针变量p*/指针变量p指向整型

2、变量i。2.指针的概念变量名供用户使用,如i,j,k。存储单元地址供系统使用,如:2000,2002,2004。33.变量的访问方式直接访问:直接通过变量的地址或变量名(系统会自动将变量名转换成变量的地址)进行访问,如:scanf(“%d”,&a);或:a=78;a200078间接访问:将变量的地址存放在一个指针变量中,通过指针变量对变量进行访问。inta,*p;p=&a;ap200078200220007844.指针运算符和指针变量的引用取地址运算符号&:用法:&变量名功能:取变量的地址优先级:仅次于括号类结合性:右(单目运算)指针(间接访问)运算符号*:用法:*指针变量名功能:取地址中的值

3、结合性:右(单目运算符)优先级:仅次于括号类注意:1.定义指针变量时的“*”与其它位置出现的“*”含义不同2.&*a等价于a,a是一个指针变量;*&a等价于a,a是任何类型的简单变量。5如:inta,b,*p;(1)为指针变量赋值指针变量名=地址;例如p=&a;(2)为指针变量所指向的存储单元赋值*指针变量名=表达式;例如*p=78;等价于:a=78;使用指针变量所指向的变量中的数据变量名=*指针变量名;例如b=*p+4;等价于:b=a+4;注意:*p与a等价指针变量的引用6main(){inta,b,*p1,*p2,*p;scanf(“%d,%d”,&a,&b);printf(“a=%d,b

4、=%d”,a,b);p1=&a;p2=&b;}例1使用指针将两个数按升序排序1abp1p2p200020022000200253这是两个指针变量的值进行交换,而不是两个变量a和b的值进行交换,应输出*p1和*p2if(a>b){p=p1;p1=p2;p2=p;}printf(“min=%d,max=%d”,a,b);20022000*p1,*p2);7例1使用指针将两个数按升序排序2main(){inta,b,*p1,*p2,t;scanf(“%d,%d”,&a,&b);p1=&a;p2=&b;printf(“a=%d,b=%d”,a,b);}abp1p2t200020022000

5、200253if(a>b){t=*p1;*p1=*p2;*p2=t;}printf(“min=%d,max=%d”,a,b);这是两个指针变量所指向的存储单元的值进行交换,是变量a和b的值进行交换,可直接输出a和b的值3558结构体定义结构体类型变量的定义结构体类型变量的引用结构体类型变量的初始化结构体数组二、结构体9有时需要将不同类型的数据组合成一个有机的整体,以便于引用。如一个学生录取有下面信息:学号/姓名/性别/年龄/地址等属性intnum;charname[20];charsex;intage;charaddr[30];应当把它们组织成一个组合项,在这个组合项中包含若干个不同类型(

6、当然也可以相同)的数据项。100101LiFunM1887.5luoyangNumnamesexagescoreaddr(一)结构体概述C语言允许用户自定义这样的结构类型,称为结构体。一个结构体类型的变量中可以独立存放多种类型的数据。10(二)结构体类型和结构体变量的定义结构体类型是一种新的数据类型,系统没有确定的结构体类型,用户要根据需要,自定义某种特定的结构体类型,因此,结构体变量的定义与一般变量不同,需要先定义结构体类型后,再定义结构体变量。11一般形式:struct结构体名{成员表列};结构体名类型名成员名1.结构体类型的定义不要忽略最后的分号!注意如:structstudent{in

7、tnum;charname[20];charsex;intage;floatscore;charaddr[30];};这样只是指定了一个结构体类型,它相当于一种数据类型,但其中并无具体数据,系统对之也不分配实际内存单元。可以定义结构体类型变量,存放不同类型的数据组合成的一组数据。说明12例如:structstudent{intnum;charname[20];charsex;intage;floa

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

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

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