1 / 46
文档名称:

C语言结构体与指针课件.ppt

格式:ppt   大小:226KB   页数:46
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言结构体与指针课件.ppt

上传人:glfsnxh 2020/7/17 文件大小:226 KB

下载得到文件列表

C语言结构体与指针课件.ppt

文档介绍

文档介绍:补充内容:指针和结构体指针是C语言中的重要概念,也是C语言的重要特色。掌握指针的概念、定义、指针变量的引用,掌握地址与指针的关系。掌握指针与函数的关系。掌握结构体类型变量的定义方法和引用方法。一、指针概述1、地址的概念与取地址运算内存以字节编码,每个编码都是一个地址。我们怎样知道机器将某种数据放在内存的什么地方呢?可用求地址运算符&如:inta=3;&a就是变量在内存中的地址。可以用printf(“%x\n”,&a)查看其地址。注意,这个地址并不是始终不变的,这是由机器和操作系统来安排的,我们无法预先知道。一、: 既然存储在内存中的各种变量都有一个地址,我们能否这样设想:定义某种变量,让这个变量的值始终等于某个变量的地址,如同某个房间号、门牌号一样? 这种存放某种变量地址的变量称为指针变量。1035….ab20102012p2010q2012因此,在C语言中,将地址形象化地称为指针一、指针概述几点说明(系统对变量的访问形式分为两种)一个变量的访问(访问是指取出其值或向它赋值)方式有两种:(1)直接访问,通过变量名访问,如通过变量名i直接访问。(2)间接访问,通过该变量的指针来访问,如通过指针p访问变量i。基类型,即该指针变量所指向的变量的类型二、指针变量1、定义指针变量:数据类型*指针变量名1,*指针变量名2,…;如:int*p,a=3; int*q,b=5;如何使一个指针变量指向另外一个变量呢?p=&a;q=&b;1035….ab20102012p2010q2012二、指针变量为什么要为指针变量定义类型: 不同的数据类型,如char仅占一个字节、int占两个字节、float型占三个字节,而内存又是以字节为单位进行地址编号,因而对char型,只要地址数加减1,取出的数据就是char型的完整数据。对int型,要取出其中的数据需2字节,就不能对地址进行简单的加减1了。怎样取出一个完整的int型数据或float型数据呢?如果能够将指针变量也定义为具有同样的数据类型,那么对指针进行加1或减1运算,就是让指针移动相应基类型对应的字节数。二、+14bytepP+1P+2P+312342byte二、指针变量2、指针变量赋值(这里要用到取地址运算符“&”)例: pointer_1=&i; pointer_2=&j;注意(1)指针变量中只能存放地址,不能将一个非地址类型的数据(如常数等)赋给一个指针变量,如:pointer_1=100; (2)也可以在定义指针变量的同时指定其初值,如:inta; int*p=&a;二、指针变量3、指针变量的引用取地址运算:如:int*p,i=3,j=5;p=&i;/*让p其指向变量i*/对指针变量施加*运算,则代表取指针所指向的单元的内容。 这里,*p与变量i是等价的。二、指针变量区分:*运算符在不同场合的作用,编译器能够根据上下文环境判别*的作用。 inta,b,c;int*p;(*表示定义指针)p=&a;*p=100;(*表示指针运算符)c=a*b;(*表示乘法运算符) printf(“%d\n”,*p);