![C语言实验报告范文_第1页](http://file4.renrendoc.com/view/654a27e8339d90e4f4e832df8975a26e/654a27e8339d90e4f4e832df8975a26e1.gif)
![C语言实验报告范文_第2页](http://file4.renrendoc.com/view/654a27e8339d90e4f4e832df8975a26e/654a27e8339d90e4f4e832df8975a26e2.gif)
![C语言实验报告范文_第3页](http://file4.renrendoc.com/view/654a27e8339d90e4f4e832df8975a26e/654a27e8339d90e4f4e832df8975a26e3.gif)
![C语言实验报告范文_第4页](http://file4.renrendoc.com/view/654a27e8339d90e4f4e832df8975a26e/654a27e8339d90e4f4e832df8975a26e4.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机科学与技术系C语言实验报告实验名称:指针及其应用日期:得分:指导老师:专业:班次:姓名:学号:实验目的1)掌握变量的指针及其基本用法。2)掌握一维数组的指针及其基本用法。3)掌握指针变量作为函数的参数时,参数的传达过程及其用法。一.实验内容(1)运转以下程序,并从中认识变量的指针和指针变量的观点。(2)运转以下程序,察看&a[0]、&a[i]和p的变化,而后回答以下问题:程序的功能是什么?在开始进入循环体以前,p指向谁?循环每增添一次,p的值(地点)增添多少?它指向谁?退出循环后,p指向谁?你能否初步掌握了经过指针变量引用数组元素的方法?3)先剖析以下程序的运转结果,而后上机考证,并经过此例掌握经过指针变量引用数组元素的各样方法。.4)编写函数,将n个数按本来的次序的逆序摆列(要求用指针实现),而后编写主函数达成:①输入10个数;②调用此函数进行重排;③输出重排后的结果。二.剖析与议论(1)指针的定义方法,指针和变量的关系。定义方法:数据种类*指针变量名;如定义一个指向int型变量的指针——int*p;.则我们能够持续写以下代码——inta=4;p=&a;printf("%d",*p);在这里,我们定义了一个变量a,我们把它理解为内存空间连续的4个字节int型占用4字节),则这4个字节的空间保留着一个数4。&是取地点符号,即把变量a的地点(即这4个字节的首地点)赋给指针p(记着指针p的种类和变量a的种类要保持一致,不然的话,要进行种类变换)。这样子,指针p就保存着变量a的地点。我们假如把指针p当成内存空间里面此外一个连续的4个字节,那么这4个字节保留的数就是变量a的地点。printf("%d",*p)和printf("%d",a)的结果是同样的。这里的*是取变量符号(与&恰好作用相反,通过变量的地点找到变量),与定义时int*p的*号作用不一样(定义时的*表示该变量是个指针变量,而非是取它指向的变量)。(2)数组和指针的关系。指针与数组是C语言中很重要的两个观点,它们之间有着亲密的关系,利用这类关系,能够加强办理数组的灵巧性,加速运转速度,本文侧重议论指针与数组之间的联系及在编程中的应用。1.指针与数组的关系当一个指针变量被初始化成数组名时,就说该指针变量指向了数组。如:charstr[20],*ptr;ptr=str;ptr被置为数组str的第一个元素的地点,因为数组名就是该数组的首地点,也是数组第一个元素的地点。此时能够以为指针ptr就是数组str(反之不建立),这样本来对数组的办理都能够用指针来实现。如对数组元素的接见,既能够用下标变量接见,也能够用指针接见。2.指向数组元素的指针如有以下定义:inta[10],*pa;pa=a;则p=&a[0]是将数组第1个元素的地点赋给了指针变量p。实质上,C语言中数组名就是数组的首地点,所以第一个元素的地点能够用两种方法获取:p=&a[0]或p=a。pa是指针变量,a是数组名。值得这两种方法在形式上相似,其差别在于:注意的是:pa是一个能够变化的指针变量,而a是一个常数。因为数组一经被说明,数组的地点也就是固定的,所以a是不可以变化的,不一样意使用a++、+a或语句a+=10,而pa++、++pa、pa+=10则是正确的。因而可知,此时指针与数组融为一体。3.指针与一维数组理解指针与一维数组的关系,第一要认识在编译系统中,一维数组的储存组织形式和对数组元素的接见方法。一维数组是一个线形表,它被寄存在一片连续的内存单元中。C语言对数组的接见是经过数组名(数组的开端地点)加上相关于开端地点的相对量(由下标变量给出),获取要接见的数组元素的单元地点,而后再对计算出的单元地点的.内容进行接见。往常把数据种类所占单元的字节个数称为扩大因子。实质上编译系统将数组元素的形式a[i]变换成*(a+i),而后才进行运算。关于一般数组元素的形式:<数组名>[<下标表达式>],编译程序将其变换成:*(<数组名>+<下标表达式>),此中下标表达式为:下标表达式*扩大因子。整个式子计算结果是一个内存地点,最后的结果为:*<地点>=<地点所对应单元的地点的内容>。因而可知,C语言对数组的办理,其实是变换成指针地点的运算。数组与指针暗中联合在一同。所以,任何能由下标达成的操作,都能够用指针来实现,一个不带下标的数组名就是一个指向该数组的指针。4.指针与多维数组用指针变量能够指向一维数组,也能够指向多维数组。但在观点上和使用上,多维数组的指针比一维数组的指针要复杂一些。比如,在一个三维数组中,引用元素c[i][j][k]的地点计算最后将换成:(*(*(c+i)+j)+k)。认识了多维数组的储存形式和接见多维数组元素的内部变换公式后,再看当一个指针变量指向多维数组及其元素的状况。1指向数组元素的指针变量如有以下说明:inta[3][4];int*p;p=a;p是指向整型变量的指针;p=a使p指向整型二维数组a的首地点。*(*(p+1)+2)表示取a[1][2]的内容;*p表示取a[0][1]的内容,因为p是指向整型变量的指针;p++表示p的内容加1,即p中寄存的地点增添一个整型量的字节数2,进而使p指向下一个整型量a[0][1]。2指向由j个整数构成的一维数组的指针变量当指针变量p不是指向整型变量,而是指向一个包括j个元素的一维数组。假如p=a[0],则p++不是指向a[0][1],而是指向a[1]。这时p的增值以一维数组的长度为单位。5.指针与字符数组语言中很多字符串操作都是由指向字符数组的指针及指针的运算来实现的。因为关于字符串来说,一般都是严格的次序存取方式,使用指针能够打破这类存取方式,更加灵巧地办理字符串。此外因
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【正版授权】 ISO/TR 24589-1:2024 EN Examples of good practice for the management of assets of water supply and wastewater systems - Part 1: Water supply
- 【正版授权】 ISO 24591-1:2024 EN Smart water management - Part 1: General guidelines and governance
- 2025贝壳房产中介加盟店客户满意度调查及提升措施合同
- 2025年房屋拆除工程环境保护与监测合同
- 教学理念与实践探索计划
- 课堂游戏与学习效果的关系计划
- 图书发行渠道拓展计划
- 主管年度工作方案计划
- 公司企业文化建设的年度工作计划
- 七年级下册《垂线》课件与练习
- 国家农产品质量安全监督抽查抽样单
- 聘书模板可编辑
- 高校教师个人总结3000字数
- 离心式压缩机功率公式
- 柴油机突然停机的原因及判断处理
- 参保人员就医流程doc
- 微观经济学图示分析汇总分解(共17页)
- 现场材料浪费罚款单(精编版)
- ABB智能定位器TZID-C调试说明书(中文正式版)
- 东南大学建筑学专业课程设置
- Q∕CR 562.2-2017 铁路隧道防排水材料 第2部分:止水带
评论
0/150
提交评论