- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
“C/C程序的设计”第06章节[复合数据类型]
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
6.1 指针类型
概念:
旅馆房间、房间编号、房间名称、派房牌(上写房间号)。
1)地址
给内存单元(一般是字节)的编号 。计算机根据它找到对应的字节进行访问(存取)。
高级语言中定义一个变量,编译时根据其类型分配相应数目的字节(如int 型分2个字节,float 分4个字节),将变量名与对应内存字节映射。
变量名 地址 内存单元
2)指针
给变量、数组、结构体、函数等分配的内存单元或块区的首地址。
假如有:long m=56000 则 : m 就是 m的指针或者说是 m所占内存单元的首地址。此例中,56000就放在从这个地址开始的连续四个字节中。
3)指针变量
定义一种特殊变量,这种变量专门存放指针,用它也可找到(指向)变量、数组、结构体、函数,这样的变量 称作指针变量。
按变量是直接寻址;按指针变量是间接寻址。
由于变量、数组、结构体、函数等所分配的内存单元或块区的大小及结构不同,指针变量因而也要定义成相应的类型,不能混用。
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
[例] 交换两数。
void swap( );
main( )
{int a, b;
scanf(%d%d”,a,b);
swap(a, b);
printf(“%d,%d”,a,b);
}
void swap( int *p1, int *p2)
{int t;
t=*p1, *p1=*p2, *p2=t ;
}
2000H
2001H
2EA0H
2EA1H
a=10
b=8
内存
地址
变量
10
8
指针变量
p2=b=2EA0H
:
:
:
3100H
3101H
3802H
3803H
2000H
2EA0H
p1=a=2000H
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
Evaluation only.
Created with Aspose.Slides for .NET 3.5 Client Profile 5.2.0.0.
Copyright 2004-2011 Aspose Pty Ltd.
变量的指针变量
1) 指针变量的定义
类型标示符 * 变量名 ;
[例] int *p1, *p2;
2) 指针变量的赋值
指针变量=变量
[例] 先定义后赋值:p1=a; p2=b;
定义时赋初值: int a, *prt=a;
其中: 是取指针(地址)运算符。
赋初值问题:一个指针变量被定义后,在赋予某一变量的指针以前,其值是随机的,这个随机数可能恰好是系统区的某单元的地址。在系统不知和不受系统管理的情形下改写其中内容是危险的。变量的地址是由系统分配和管理的,因而是安全的。
3)指针变量的使用
p1=a; p2=b; scanf(“%d%d”, p1, p2);
t =*p1; *p1=*p2; *p2= t;
Evaluation only.
Created w
您可能关注的文档
最近下载
- 2024年在专题学习恪守“六大纪律”筑牢思想根基研讨交流发言材(10篇).docx
- 《稻草人》读书课、指导课、欣赏课、汇报课教学设计.pdf
- 部编版道德与法治二年级上册假期有收获(精品课件).ppt
- 2024全国交管12123驾驶证学法减分(学法免分)考试题库与参考答案.docx VIP
- 第2课 在线信息的搜索 教学设计 苏科版信息科技三年级上册.pdf
- 2024年乡镇平安建设实施方案范文(精选9篇).docx VIP
- GBT 1.1-2020 标准化文件的结构和起草规则 授课讲解文件资料.pdf
- 双频大张角射灯天线产品规格书.pdf
- 宇通客车营运能力分析.docx
- 红色大气简约风红色经典故事PPT模板.pptx VIP
文档评论(0)