




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章指针
指针是C语言中一种重要的数据类型,是C语言的特色和精华之一。第一节变量的地址计算机的内存是以字节为单位的一片连续的存储空间,每一个字节都有一个编号,这个编号就叫做内存地址。因为内存的存储空间是连续的,内存中的地址编号也是连续的。inta;每个变量的地址是该变量所占存储单元的第一个字节的地址。所以a的地址为1011.直接存取:假如我们执行表达式a=5,实际上就是将整数5放到了内存地址1011、1012、1013、1014中去了,我们只是指出变量名,不必知道每个变量在内存中的具体地址,每个变量与具体地址的联系由c编译系统来完成。这种直接按变量地址存取变量值的方法叫做“直接存取”。第二节指针变量一、指针变量的定义规定一种变量,专门来存放内存地址。指针变量占4个字节的内存空间。定义格式:类型名*指针变量名1,*指针变量名2,………;例如:int*p,*q;间接存取:p里面放a的地址,访问a变量时,要首先找到p的地址,从中取出a的地址(1011),再去访问a中的数二、给指针变量赋初值。(1)通过求地址运算符&给指针变量赋初值scanf(“%d”,&a);inta=10,*p,*q;p=&a;注意:&可以用于变量和数组元素,但不可以用于表达式和常量等。只能放在运算对象的左边,&右边的运算对象的类型必须与被赋值的那个指针变量的基类型严格相同。(2)通过其他指针变量获得地址值。q=p;三、给指针变量赋空值。还可以对指针变量赋空值,其含义是不指向任何常量。p=NULL;NULL的代码值为0,所以等价为:p=0;或p=‘\0’;第三节对指针的操作一、引用存储单元除了&与指针变量有关,C语言中还有一个指针运算符(也称间接访问运算符)*也与指针变量有关。例如:inta=8,b,*p;p=&a;b=*p;注意:(1)指针定义中的*和间接访问运算符*有本质的区别。(2)间接访问运算符必须出现在运算对象的左边,运算对象可以是地址或者存放了地址的指针变量。如:p=&a;b=*p等价与p=*(&a)或p=*&a;例题:有以下程序,输出结果是:main(){inta=7,b=8,*p,*q,*r;p=&a;q=&b;r=p;p=q;q=r;printf("%d,%d,%d,%d\n",*p,*q,a,b);}二、移动指针就是通过赋值运算,对指针变量加上或减去一个整数,使指针变量执行相邻的存储单元。例如int*p,p=p+1;三、指针比较通过关系运算符来实现。int*p,*q;第四勒节眼指针概与函辨数一、蹲“传芽值”粥与“梳传址镇”1、形包参为吓指针稀变量饶时,旨形参捕与实塌参之怕间的钻数据载传递露。in糠tf(报in示t*a,是in跃t*b凡){in塞ts;s=桐*a斥+*童b;re扯tu块rn蛾s哈;}ma血in婶(){in恢tx=旷2,灭y=灶4,禾s;s=f(月&x屡,&见y);pr色in登tf室("怕%d蛙\n骨",仗s);}2、通盆过传掀送地述址值涝,在欺被调费用函灿数中秆直接莫改变哨调用烈函数拌中的划变量使值。例题而:调友用sw蚕ap函数汗,交纳换主胜函数钟中变退量x和y中的概数据vo看idsw示ap叼(i短nt*a,例in笛t*b岩){in仔tt;t=葬*a伟;*关a=高*b算;*额b=煌t;}ma筒in吉(){in匙tx=配10拾,y禾=2倚0;pr虑in绿tf御("拔(1惜)x惑=%哲d筛y=阀%d\虾n"孔,x纽奉,y);sw雕ap诊(&辆x,干&y);pr转in随tf清("殖(2首)x翼=%浅d墙y=她%d\砖n"炊,x回,y);}例题2:输孩出结酷果是()vo熊id皮f偏(i良nt辨y插,i幕nt订*暑x){y=凳y+伸*x漫;尽*x摘=*因x+板y;}ma椅in财(){in抢t夸x=统2,梁y=醒4;f(尾y,百&x轮);pr内in丑tf困("踩%d园%胃d\扣n"皱,x佩,y栽);}二、化函数参返回决地址俗值例题舟:in送t*fu百n(归in加t*,in迅t*)敬;ma同in脚(){in勤ta,下b,*侵p;sc坟an滥f(懒"%垦d%胸d"巨,&皆a,缠&b);p=fu滚n(安&a渠,&吨b);pr曲in灵tf巡寿("伐a=%d,拿b=%勉d,乱*p嘱=%d\中n"慌,a想,b,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 华东师范大学《风景园林设计实验古典园林景观设计》2023-2024学年第二学期期末试卷
- 武汉工程大学邮电与信息工程学院《立体设计》2023-2024学年第二学期期末试卷
- 南京师范大学泰州学院《大学美育》2023-2024学年第二学期期末试卷
- 南昌航空大学《电路(下)》2023-2024学年第二学期期末试卷
- 河南检察职业学院《造型基础(工设)》2023-2024学年第二学期期末试卷
- 河源广东河源紫金县专门学校驻校教官招聘7人笔试历年参考题库附带答案详解
- 山东农业大学《组成原理与接口技术》2023-2024学年第二学期期末试卷
- 山西体育职业学院《联合创作预案》2023-2024学年第二学期期末试卷
- 中国矿业大学(北京)《基础造型》2023-2024学年第二学期期末试卷
- 河南2025年河南省工业学校招聘20人笔试历年参考题库附带答案详解-1
- 发展汉语初级口语I-第18课课件
- GB/T 43200-2023机器人一体化关节性能及试验方法
- XX森林康养度假建设项目可行性研究报告
- 防灾减灾地质灾害防御应对讲座培训课件ppt
- 小学奥数七大模块思维导图课件
- 火力发电厂OVATION 与西门子控制系统之间通讯实现
- 我长大以后【经典绘本】
- 2023学年完整公开课版闸阀
- 中国湿疹诊疗指南
- 国家电网有限公司电网数字化项目工作量度量规范应用指南(2020版)
- 电子商务文案写作教学ppt课件(完整版)
评论
0/150
提交评论