函数———大连理工大学软件学院蒋光远

函数———大连理工大学软件学院蒋光远

ID:41366918

大小:1.75 MB

页数:106页

时间:2019-08-23

函数———大连理工大学软件学院蒋光远_第1页
函数———大连理工大学软件学院蒋光远_第2页
函数———大连理工大学软件学院蒋光远_第3页
函数———大连理工大学软件学院蒋光远_第4页
函数———大连理工大学软件学院蒋光远_第5页
资源描述:

《函数———大连理工大学软件学院蒋光远》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、第11章指针C程序设计快速进阶大学教程C程序设计快速进阶大学教程2021/8/112第11章指针本章要点指针概念指针与数组指针与函数字符串动态空间管理C程序设计快速进阶大学教程2021/8/11311指针知识点指针概念指向数组的指针、指针数组指针做参数、指针做为函数值、指向函数的指针字符串动态空间管理C程序设计快速进阶大学教程2021/8/11411.1理解指针当问路时,经常听到这样的回答:“向前走过3个路口右转,再过两个路口左转,再前行200米。”当在图书馆中找一本时,经常是这样找:“第五排书架,从上向下数第二层,左数第6本。”老师提问学生,在不知道学生姓名的情况下,

2、经常说:“第4排左数第二个同学。”上述例子说明对一个事务的访问,当不能够通过名称直接访问,只能够通过其位置进行访问。C程序同样的道理,前面的章节对数据的访问是通过变量名称实现的,但是,有时候不知道其名称,甚至其没有名称,这时候只能通过该数据所在的地址进行访问。C程序设计快速进阶大学教程2021/8/11511.2指向变量的指针C语言中定义一个变量时,例如:inti1=3;描述了变量相关的3方面的属性:值、地址、类型。1.值为3,通过变量访问,如i1+52.地址为0012ff78(32位机器,0012ff78为16进制数),占用内存空间的位置,通过&i1访问,&在scan

3、f语句中使用过。3.类型为int,决定了其能够参加的运算,同时也决定了其占用空间的大小(从起始地址开始占用的连续字节数),占用空间的大小通过sizeof运算符,在vc中sizeof(i1)为4个字节。C程序设计快速进阶大学教程2021/8/11611.2指向变量的指针把变量i1的地址存放于指针变量pi1中C程序设计快速进阶大学教程2021/8/11711.2.1指针变量的定义指针变量定义的一般形式为:类型说明符*变量名;例如:int*pi1;对指针变量的定义包括三个内容:1.指针类型说明,*表示这是一个指针变量;2.指针变量名,pi1为指针变量名;3.指针所指向的变量的

4、数据类型,int为指针变量所指向的变量的数据类型,说明pi1只能储存整型变量的地址。再如:float*pf1;/*pf1是指向浮点变量的指针变量*/char*pc1/*pc1是指向字符变量的指针变量*/C程序设计快速进阶大学教程2021/8/11811.2.2指针变量的引用指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将造成系统混乱,甚至死机。(问路时别人告诉你一个不存在的地址,会怎么样?)C程序设计快速进阶大学教程2021/8/11911.2.2指针变量的引用和指针相关有两个运算符&和*:1.&:取地址运算符。其

5、一般形式为:&变量名取一个内存变量的地址。2.*:指针运算符(或称“间接访问”运算符)。其一般形式为:*指针变量名通过指针变量间接访问指针变量所指向变量的数据。inti1;int*pi1;pi1=&i1;inti2=*pi1+1;此处*代表间接访问运算符,取指针变量pi1所指向的变量i1的值(对i1间接访问)加1赋值给变量i2。此语句结果完全等价于:inti2=i1+1;C程序设计快速进阶大学教程2021/8/111011.2.2指针变量的引用指针变量说明:1.对*要区别类型说明符与间接访访问符。2.不能用一个数给指针变量赋值,下面赋值是错误的:int*pi1;pi1=

6、20;但是,指针可用0赋值,代表空指针,哪里也不指向。3.给指针变量赋值时,指针变量前不能加“*”说明符,下面的写法是错误的:inti1;int*pi1;*pi1=&i1;指针变量pi1前面加*就代表间接访问了,代表i1。C程序设计快速进阶大学教程2021/8/111111.2.2指针变量的引用指针变量说明:4.指针变量未指向具体有效地址,间接访问会有问题int*pi1;/*指针变量pi1未赋值,不知道指向哪里*/*pi1=200;/*向pi1所指向的地址空间赋值200*/(随机给你一个账户,存钱后怎样取呢?)判定一个指针变量是否指向有效空间:int*pi1=0;……i

7、f(pi1!=0)*pi1=200;省略号部分,若未使pi1指向有效空间,这对*pil的赋值就不会执行。C程序设计快速进阶大学教程2021/8/111211.2.2指针变量的引用指针变量说明:5.指针变量的值是可以改变的inti1=3,i2=4,*pi1;pi1=&i1;i2=i2+*pi1;C程序设计快速进阶大学教程2021/8/111311.2.2指针变量的引用指针变量说明:5.指针变量的值是可以改变的pi1=&i2;改变指针变量pi1指向i2C程序设计快速进阶大学教程2021/8/111411.2.2指针变量的引用指针变量说明:6.

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

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

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