版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务描述指针变量的定义与使用指针变量做函数参数指针变量与数组指针变量与结构体PART01任务描述学生信息数据量大,需要重复性的进行数据访问与操作,指针可以用来快速访问数据,也可以用于函数参数传递,进而达到更加灵活使用函数的目的,使C语言程序的设计具有灵活、实用、高效的特点。本任务就是利用指实现数据传递,同时利用指针访问批量数据,使程序更加快速灵活。任务描述PART02指针变量的定义与使用一、指针的概念在计算机中,所有的数据都是存放在存储器中的。地址指向该内存单元。根据内存单元的编号或地址就可以找到所需的内存单元,通常把地址形象化地称为指针。对变量实现访问有两种方式:直接访问和间接访问。访问变量时直接用变量名进行访问是“直接访问”方式。将变量的地址存放在另一个变量中,然后通过该变量来找到变量的地址实现访问变量是“间接访问”方式。用来存放地址的量成为指针变量。一个变量的地址称为该变量的指针。指针变量就是地址变量,用来存放地址,指针变量的值是地址。指针变量的定义与使用二、指针变量的定义对指针变量的定义包括三个内容:(1)指针类型说明,即定义变量为一个指针变量;(2)指针变量名;(3)变量值(指针)所指向的变量的数据类型。其一般形式为:类型说明符*变量名;其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示本指针变量所指向变量的数据类型。例如:int*p1;表示p1是一个指针变量,它的值是某个整型变量的地址。指针变量的定义与使用三、指针变量的初始化与指针有关的两个运算符:(1)&:取地址运算符。(2)*:指针运算符(或称“间接访问”运算符)。C语言中提供了地址运算符“&”来表示变量的地址,其一般形式为:&变量名指针变量初始化的一般形式是:类型说明符*指针变量名=&变量名;或者:类型说明符*指针变量名;指针变量名=&变量名;指针变量的定义与使用例如:inta=5,*p;//定义了整型变量a和一个指向整型变量的指针变量p如要把整型变量a的地址赋予p可以有以下两种方式:(1)先定义指针变量,再初始化inta=5,*p;p=&a;(2)定义指针变量的同时进行初始化inta=5,*p=&a;指针变量的定义与使用四、指针变量的引用引用已经定义的指针变量所指向的变量基本形式是:*指针变量名inta=5,*p;//定义指针变量pp=&a;//初始化指针变量pprintf(”%d\n”,*p);//输出指针变量p所指向变量的值5指针变量的定义与使用PART03指针变量做函数参数指针变量做函数参数是将一个地址量传递给被调函数中的形参指针变量,使形参指针变量指向实参指针变量指向的变量,即在函数调用时确定形参指针变量的指向。如果函数参数是指针变量,形参的改变会引起实参的变化,这种参数传递方式我们称之为“址传递”。函数具有两种传递数据的方法:“值传递”方式和“址传递”方式。“值传递”方式中形参的改变不会引起实参的任何变化,数据传递的方向是从实参传到形参,单向传递;而“址传递”方式中,传递的是地址,所以形参的改变会引起实参的变化。指针变量做函数参数PART04指针变量与数组一、指针变量与一维数组1.指针指向一维数组数组元素的首地址是指它所占有连续内存单元的首地址,所谓数组的指针是指数组的首地址,数组元素的指针是数组元素的地址。C语言规定,数组名(不包含形参数组名)代表数组的首地址,也就是第0号元素的地址。例如:inta[10]={1,3,5,7,9,11,13,15,17,19};int*p;p=&a[0];//p的值是a[0]的地址等价于:p=a;//p的值是数组a首元素(即a[0]的地址)指针变量与数组1.指针引用一维数组元素当指针指向同一个数组的时候允许对指针进行加减运算。在指针指向数组元素时,可以对指针进行加减运算。引用一个数组元素可以用以下两种方式:(1)下标法,即用a[i]形式访问数组元素。在前面介绍数组时都是采用这种方法。(2)指针法,即采用*(a+i)或*(p+i)形式,用间接访问的方法来访问数组元素,其中a是数组名,p是指向数组的指针变量,其初值p=a。指针变量与数组二、指针变量与字符串1.字符数组与字符串用字符数组存放一个字符串,可以通过数组名和下标引用字符串中一个字符,也可以通过数组名和格式声明“%s”输出该字符串。2.指针变量指向一个字符串C语言对字符串常量是按照字符数组处理的,即在内存中以其字符数组的形式存放,但是该字符数组没有数组名,只能通过指针变量来引用。程序中的:char*string=”IloveChina!”;等效于:char*string;string="IloveChina!";指针变量与数组3.数组与指针处理字符串区别(1)字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是地址(字符串中第一个字符的地址),不是将字符串放到字符指针变量中。(2)赋值方式。可以对字符指针变量赋值,但是不能对数组名赋值。(3)指针变量的值是可以改变的,而数组名代表一个固定的值(数组首元素的地址),不能改变。(4)字符数组中各元素的值是可以改变的,但是字符指针变量指向的字符串常量的内容是不可改变的。指针变量与数组例如:chara[]=”Hello”;//字符数组a初始化char*b=”Hello”;//指针变量b初始化a[1]=’t’;//合法,b[1]=’t’;//不合法,字符串常量不能改变指针变量与数组PART05指针变量与结构体一、指向结构体指针变量1.结构体指针变量定义一个指针变量当用来指向一个结构体变量时,称之为结构体指针变量。结构体指针变量中的值是所指向的结构体变量的首地址。structstu{intnum;charname[20];intage;charsex;};指针变量与结构体结构体指针变量说明的一般形式为:struct结构名*结构指针变量名结构体指针变量的初始化:(1)定义的结构体指针变量的同时初始化structstua,*p=&a;//指针变量p指向了结构体变量a(2)先定义结构体指针变量后初始化structstua,*p;p=&a;//指针变量p指向了结构体变量a指针变量与结构体2.利用结构体指针变量访问结构体成员访问的一般形式为:(*结构体指针变量).成员名或为:结构体指针变量->成员名例如:访问name成员可以有以下几种方式://运用结构体变量a进行访问(*p).name//(*p)两侧的括号不可少,因为成员符“.”的优先级高于“*”p->name//运用结构体指针进行访问指针变量与结构体二、指针与结构体数组结构体指针变量也可指向结构体数组的一个元素,这时结构体指针变量的值是该结构体数组元素的地址。structstu{intnum;char*name;cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 儿科脱水护理的评估补液全流程总结2026
- 高血压护理业务精要
- 护理工作计划
- 班组安全管理培训试卷
- 职业规划文章选题技巧
- 七年级数学上册试题02
- 2026年国家心理咨询师二级技能模拟考试试卷含答案
- 2025年广西壮族自治区钦州市八年级地理生物会考真题试卷(+答案)
- 2025年湖南益阳市初二学业水平地理生物会考题库及答案
- 2025年广东湛江市八年级地生会考真题试卷+答案
- 员额检察官遴选笔试试题
- 车辆销售行业的安全知识培训
- 实验室生物安全标准与操作规程
- 低血压的护理
- 2023年湖北卷化学高考试卷(含答案)
- 2023年初中语文升学考试历年各地满分作文参考(17篇)
- 设备报价方案
- 农村继续承包 授权委托书
- 电气仪表安装工程专项施工方案
- 纺织结构复合材料第一讲
- 部编道德与法治九年级下册教材培训
评论
0/150
提交评论