欢迎来到天天文库
浏览记录
ID:59440937
大小:387.00 KB
页数:36页
时间:2020-09-18
《指针概念定义引用运算及练习ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章指针是C语言中的精华与难点引入指针前变量的访问方式(1)定义变量:shorta;charch;floatf;内存12……8b3a8b3b8b3c以字节为单位进行编号(地址)9a019b3c9b3d9b3e9b3f…………系统根据变量的类型,从内存中给变量分配相应字节的空间,并记录变量名与内存起始地址之间的对应关系系统表变量名起始地址字节数a8b3a2ch9a011f9b3c4(2)使用变量a=3;ch=‘A’;f=3.5;内存12……8b3a8b3b8b3c以字节为单位进行编号(地址)9a019b3c9b3d9b3e9b3f…………0000000000000101
2、010000013.5我们将这种通过变量名来使用变量的方式称为直接访问方式9.1指针的概念引入指针后变量的访问方式(1)定义变量:floatf=3.5,*p;内存12……8b3a8b3b8b3c9a019b3c9b3d9b3e9b3f…………系统表变量名起始地址字节数p8b3a2f9b3c43.5(2)使用指针变量p=&f;内存12……8b3a8b3b8b3c9a019b3c9b3d9b3e9b3f…………3.5访问变量f的过程:(1)从指针变量p中读出值(地址)。(2)按照读出的地址,到相应的地址访问变量f9b3c我们将这种先查地址,再通过地址找到变量的方式称为间接访
3、问方式说明:[1]地址:内存各字节单元的编号。[2]地址的表示:变量的地址:&变量名数组的地址:数组名数组元素的地址:&数组元素[3]指针变量是C语言提供的专门用于存放地址的变量。12……8b3a8b3b8b3c9a019b3c9b3d9b3e9b3f…………3.5pf指向:若一个指针变量中存放了某个变量(数组、数组元素)的地址,我们称“指针变量指向了某变量(数组、数组元素)”。例如:9b3cfloat*p,f=3.5;p=&f;指针变量p中存放f的地址简单表示为:pf基本概念[1]指针:即地址(内存各字节单元的编号)[2]指针变量:用于存放指针(地址)的变量[3]指针
4、变量指向的变量:以指针变量中的地址作为存储地址的变量。12……8b3a8b3b8b3c9a019b3c9b3d9b3e9b3f…………3.5pf9b3c指针指针变量指针变量p指向的变量9.2指针变量的定义及使用指针变量同普通变量一样,必须先定义后使用指针变量的定义:【一般形式】类型名称*变量名称;规定该指针变量存放哪种类型变量的地址,且只能存放该类型变量的地址。可以是任意类型。指针变量的标志符合C语言规定的标识符,作为变量名称使用举例:int*pa;long*pl;float*pf;char*pc;(1)pa中只能存放int型变量的地址,即只能指向int型的变量。(2)
5、pl只能指向long类型变量(3)pf只能指向float类型变量(4)pc只能指向char类型变量(5)void*p;只能指向void类型指针变量在内存中占用的字节数与计算机的硬件有关(16位机2字节,32位机4字节),与指向的数据类型无关。在同类的计算机中,所有指针变量占用的字节数是相同的,例如:使用16位机,定义int*pa;float*pf;char*pc;pa,pf,pc虽然指向的数据类型不同,但在内存中占用的字节数是相同的(2字节)。指针变量的使用:先赋值(指向)、后引用指针变量的赋值:将变量的地址赋给指针变量(1)指针变量的初始化:定义的同时赋值inta=3
6、,*p=&a;/*p指向int型变量a*/(2)使用赋值语句:inta,*p;p=&a;/*p指向int型变量a*/(3)不使用scanf函数输入指针变量的值。(3)注意问题:int*p=&a,a=3;int*p;floatf=3.5;p=&f;a=3,*p=&a;float*p;指针变量的引用引用:通过指针变量间接访问其指向的变量【一般形式】*指针变量名引用运算符代表该指针变量指向的变量int*p,a;p=&a;a=5;*p=7;pa&a5直接访问方式将p指向的变量赋值为77间接访问方式说明(1)指针变量只能赋地址值,不能赋其他类型的数据。(2)指针变量的使用顺序为定
7、义:int*p,a;指向(赋值):p=&a;引用:*p=3;例如:int*p=1000;Warning:Non-portablepointerassignmentint*p,a;*p=3;Warning:PossibleuseOf‘p’beforedefinationin(3)希望指针变量不指向任何单元,可使用以下三种形式之一:main(){int*p;p=0;}stdio.h中有预处理命令:#defineNULL0#defineNULL0p=NULL;#include“stdio.h”p=NULL;推荐使用形式3(4)在定义指针变量和引
此文档下载收益归作者所有