- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机程序设计基础——第九讲_back
* * 第九讲 指针 指针是C语言中的一个重要概念。掌握指针的用法,可使程序简洁、高效、灵活,但并不难学。 为了了解什么是指针,先看一个小故事 地下工作者阿金接到上级指令,要去寻找打开密电码的密钥,这是一个整数。几经周折,才探知如下线索,密钥藏在一栋三年前就被贴上封条的小楼中。一个风雨交加的夜晚,阿金潜入了小楼,房间很多,不知该进哪一间,正在一筹莫展之际,忽然走廊上的电话铃声响起。艺高人胆大,阿金毫不迟疑,抓起听筒,一个陌生人说:“去打开211房间,那里有线索”。阿金疾步上楼,打开211房间,用电筒一照,只见桌上赫然6个大字:地址1000。阿金眼睛一亮,迅速找到1000房间,取出重要数据66,完成了任务。 我们画出下图 … 66 … 1000 211 1000 P 说明: 1、数据藏在一个内存地址单元中,地址是1000。 2、地址1000又由P单元所指认,P单元的地址为211。 3、66的直接地址是1000;66的间接地址是211;211中存的是直接地址1000。 4、称P为指针变量,1000是指针变量的值,实际上是有用数据藏在存储器中的地址。 指针变量——用来存放另一变量地址的变量变量的指针就是变量的地址。 1、指针的概念 指针是一种特殊的变量,特殊性表现在类型和值上。 从变量讲,指针也具有变量的三个要素: (1)变量名,这与一般变量取名相同,由英文字符开始。 (2)指针变量的类型,是指针所指向的变量的类型,而不是自身的类型。 (3)指针的值是某个变量的内存地址。 从上面的概念可知,指针本身类型是int型,因为任何内存地址都是整型的。但是指针变量的类型却定义成它所指向的变量的类型。 2、指针的定义(说明,先说明后引用) 例如: int *p, *q; // 定义p,q为指向整数类型变量的指针 float *point; // 定义point为指向float型变量的指针 double *pd; // 定义pd为指向double型数组的指针 int (*pa)[10]; // 定义pa为指向int型数组的指针 int (*pu)(); // 定义pu为指向int型函数的指针 int **qq; // 定义qq为指向int型指针的指针 还有指向结构、联合的指针,后面再介绍 3、指针赋值 例 int akey; // 定义一个整型变量akey int *p,*q; // 定义p,q为指向整型变量的指针变量 akey=66; // 将变量a的地址赋给p,这时见图1 q = p; // 将p的值赋给q,见图2 // 指针1.c #include stdio.h //预编译命令 void main() //主函数 { //函数体开始 int a[5]={0,1,2,3,4}; //定义数组,赋初值 int *p1,*p2; //定义指针变量 p1=a[1]; //赋值给指针变量,让p1指向a[1] p2=a[2]; //赋值给指针变量,让p1指向a[2] printf(a[1]=%d;a[2]=%d\n,*p1,*p2); //输出a[1]和a[2]的值 } 说明:见图 4 3 2 1 0 a[4] a[3] a[2] a[1] a[0] a[1] a[2] p1 p2 p1 p2 p1和p2分别指向a[1],a[2],这里 —— 取地址运算符 * —— 指针运算符(间接访问运算符) *p1——间接访问p1所指向的内存单元,当然是输出a[1]的值 *p2——间接访问p2所指向的内存单元,当然是输出a[2]的值 // 指针2.c #include stdio.h //预编译命令 void main() //主函数 { //函数体开始 int akey,b; //定义整型变量 int *p,*q; //定义指针变量 akey=66; //赋值给变量akey p=akey;
您可能关注的文档
最近下载
- 新22J01《工程做法》(新疆图集).pdf VIP
- 2015-2022年河北省专接本(专升本)《英语》真题合集.pdf VIP
- 【GB_T50779-2022 】石油化工建筑物抗爆设计标准.docx VIP
- 蓄电池内阻试验报告.docx VIP
- 《成本与管理会计(第4版)》习题答案 孙茂竹.pdf
- 劳动合同模板正规【5篇】.docx VIP
- 电气控制与PLC技术应用教学教案.docx VIP
- 22K311-5 防排烟系统设备及部件选用与安装.docx VIP
- 2025青海省从优秀村(社区)党组织书记中考录乡镇公务员32人笔试模拟试题及答案解析.docx VIP
- 最新河北省建设工程竣工验收报告6份(市政基础设施工程).pdf VIP
文档评论(0)