第8章 第二讲 结构体指针、结构体做函数参数.ppt
《第8章 第二讲 结构体指针、结构体做函数参数.ppt》由会员分享,可在线阅读,更多相关《第8章 第二讲 结构体指针、结构体做函数参数.ppt(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第8章 用户自定义数据类型 指针与结构8 85 51 1 指向结构体变量的指针变量指向结构体变量的指针变量指向结构体变量的指针变量指向结构体变量的指针变量 在定义一个结构体变量时,系统将在内存中分配一块连续的存储空在定义一个结构体变量时,系统将在内存中分配一块连续的存储空在定义一个结构体变量时,系统将在内存中分配一块连续的存储空在定义一个结构体变量时,系统将在内存中分配一块连续的存储空间,用于存放结构体成员的数据,这块连续存储空间的首地址称为结间,用于存放结构体成员的数据,这块连续存储空间的首地址称为结间,用于存放结构体成员的数据,这块连续存储空间的首地址称为结间,用于存放结构体成员的数据,这
2、块连续存储空间的首地址称为结构体变量的指针构体变量的指针构体变量的指针构体变量的指针(也称为结构体变量的首地址也称为结构体变量的首地址也称为结构体变量的首地址也称为结构体变量的首地址)。可以定义指向结构体。可以定义指向结构体。可以定义指向结构体。可以定义指向结构体变量的指针变量,若把某结构体变量的首地址赋值给一个指针变量,变量的指针变量,若把某结构体变量的首地址赋值给一个指针变量,变量的指针变量,若把某结构体变量的首地址赋值给一个指针变量,变量的指针变量,若把某结构体变量的首地址赋值给一个指针变量,则则则则称称称称这这这这一一一一指指指指针针针针变变变变量量量量指指指指向向向向该该该该结结结结
3、构构构构体体体体变变变变量量量量。指指指指向向向向结结结结构构构构体体体体的的的的指指指指针针针针变变变变量量量量定定定定义义义义格格格格式式式式是:是:是:是:structstruct 类型名类型名类型名类型名 *指针变量名;指针变量名;指针变量名;指针变量名;第8章 用户自定义数据类型 指针与结构如下面定义一个结构体类型如下面定义一个结构体类型如下面定义一个结构体类型如下面定义一个结构体类型booktpbooktp来存储书的基本信息:来存储书的基本信息:来存储书的基本信息:来存储书的基本信息:structstruct booktpbooktp char name60;char name60
4、;char author30;char author30;float price float price;structstruct datetpdatetp unsigned year unsigned year;unsigned monthunsigned month;pubdaypubday;可以定义结构体变量和指向结构体变量的指针可以定义结构体变量和指向结构体变量的指针可以定义结构体变量和指向结构体变量的指针可以定义结构体变量和指向结构体变量的指针:structstruct booktpbooktp book5 book5,*p p;第8章 用户自定义数据类型 指针与结构 以上定义了以上
5、定义了以上定义了以上定义了p p为指向结构体变量的指针变量。若为指向结构体变量的指针变量。若为指向结构体变量的指针变量。若为指向结构体变量的指针变量。若p p&book5&book5;,;,;,;,则称则称则称则称指针变量指针变量指针变量指针变量p p指向结构体变量指向结构体变量指向结构体变量指向结构体变量book5book5,此时可用下述三种方式之一存取结构此时可用下述三种方式之一存取结构此时可用下述三种方式之一存取结构此时可用下述三种方式之一存取结构体成员体成员体成员体成员(三种方式是等价的三种方式是等价的三种方式是等价的三种方式是等价的):1 1结构体变量名成员名结构体变量名成员名结构体
6、变量名成员名结构体变量名成员名 2 2指针变量名指针变量名指针变量名指针变量名 -成员名成员名成员名成员名 3 3(*(*指针变量名指针变量名指针变量名指针变量名)成员名成员名成员名成员名 其中其中其中其中 “-”是是是是 指向运算符指向运算符指向运算符指向运算符.如有下面程序段:如有下面程序段:如有下面程序段:如有下面程序段:structstructstructstruct booktpbooktpbooktpbooktp *p*p*p*p,book5book5book5book5 “C+BuiderC+BuiderC+BuiderC+Buider网网网网络络络络开开开开发发发发实实实实例例
7、例例”,”清清清清汉汉汉汉计计计计算算算算机机机机工工工工作作作作室室室室”,53535353,2000,92000,92000,92000,9;p p p p&book5&book5&book5&book5;则则则则book5book5book5book5.price price price price、p-price p-price p-price p-price 以及以及以及以及 (*p)(*p)(*p)(*p).price price price price 的值都是的值都是的值都是的值都是 535353530 0 0 0,而而而而book5book5book5book5.pubday
8、pubdaypubdaypubday.year year year year、p-p-p-p-pubday.yearpubday.yearpubday.yearpubday.year以及以及以及以及(*(*(*(*p).pubday.yearp).pubday.yearp).pubday.yearp).pubday.year 的值都是的值都是的值都是的值都是2000200020002000。注意此处注意此处注意此处注意此处(*p),price(*p),price(*p),price(*p),price的圆括号不能少的圆括号不能少的圆括号不能少的圆括号不能少.指针运算符指针运算符指针运算符指针运
9、算符“*”作用于指针变量作用于指针变量作用于指针变量作用于指针变量p p p p上,构成上,构成上,构成上,构成表达式表达式表达式表达式(*p)(*p)(*p)(*p),等价于结构体变量名等价于结构体变量名等价于结构体变量名等价于结构体变量名book5book5book5book5。第8章 用户自定义数据类型 指针与结构8 85 52 2 指向结构体数组的指针变量指向结构体数组的指针变量 指向结构体的指针变量也可以指向结构体数组及其元素。指向结构体的指针变量也可以指向结构体数组及其元素。例如,下述程序段:例如,下述程序段:structstruct booktpbooktp *p *p,book
10、3book3;p pbookbook;如图如图8 82020所示,图中假定所示,图中假定book0book0的地址是的地址是30003000,指针变量,指针变量p p指向结构体数指向结构体数组组bookbook的首地址,由于的首地址,由于sizeof(structsizeof(struct booktpbooktp)的值为的值为 9898,每个结构体元素,每个结构体元素占内存空间占内存空间9898个字节,因此个字节,因此p+lp+l指向地址指向地址30983098处,处,p+2p+2指向地址指向地址31963196处。处。98989898个字个字个字个字节节节节98989898个字个字个字个字
11、节节节节98989898个字个字个字个字节节节节p p p pp+1p+1p+1p+1p+2p+2p+2p+2300030003000300030983098309830983196319631963196book0book0book0book0book1book1book1book1book2book2book2book2图图图图8 82020 第8章 用户自定义数据类型 指针与结构 使用指针变量指向结构体变量或结构体数组时,应注意运算符的优先级:使用指针变量指向结构体变量或结构体数组时,应注意运算符的优先级:使用指针变量指向结构体变量或结构体数组时,应注意运算符的优先级:使用指针变量指向结
12、构体变量或结构体数组时,应注意运算符的优先级:1 1“()”、”、“-”、“”四四四四个个个个运运运运算算算算符符符符优优优优先先先先级级级级相相相相同同同同,在在在在C C语语语语言言言言中具有中具有中具有中具有最高的优先级,运算的结合方向是最高的优先级,运算的结合方向是最高的优先级,运算的结合方向是最高的优先级,运算的结合方向是“从左到右从左到右从左到右从左到右”;2 2“*”、“十十十十十十十十”、“一一一一一一一一”、“&”四个运算符优先级相同,在四个运算符优先级相同,在四个运算符优先级相同,在四个运算符优先级相同,在C C语语语语言优先言优先言优先言优先级的级别仅次于上述的四个运算符
13、,运算的结合方向是级的级别仅次于上述的四个运算符,运算的结合方向是级的级别仅次于上述的四个运算符,运算的结合方向是级的级别仅次于上述的四个运算符,运算的结合方向是“从右到左从右到左从右到左从右到左”。例例例例8 81616通过一个简单的例子说明指向结构体数组的指针的应用。在通过一个简单的例子说明指向结构体数组的指针的应用。在通过一个简单的例子说明指向结构体数组的指针的应用。在通过一个简单的例子说明指向结构体数组的指针的应用。在程序中,为了说明运算符的优先级和结合方向的用法,改变了书的价格。程序中,为了说明运算符的优先级和结合方向的用法,改变了书的价格。程序中,为了说明运算符的优先级和结合方向的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 第二讲 结构体指针、结构体做函数参数 第二 结构 指针 函数 参数
限制150内