结构体与共用体.pptVIP

  • 0
  • 0
  • 约1.4万字
  • 约 68页
  • 2025-10-21 发布于广东
  • 举报

指针变量p指向结构变量st1,则3种形式等价:(1)st1.成员分量运算符左侧的运算对象,只能是结构变量(2)p-成员运算符左侧的运算对象,只能是指向结构变量(或结构数组)的指针变量。“-”称为指向运算符。(3)(*p).成员(*p)表示p指向的结构体变量,不得省去括号。这样就有:st1.num等价于(*p).num等价于p-num,第30页,共68页,星期日,2025年,2月5日请注意:p–n得到p指向的结构体变量中的分量n的值。p–n++等价于(p–n)++得到p指向的结构体变量中的分量n的值,用完该值后加1。++p–n等价于++(p–n)得到p指向的结构体变量中的分量n的值,并在用该值前,先加1。第31页,共68页,星期日,2025年,2月5日例12.5指向结构体变量的指针变量应用。#include“stdio.h”structstudent{charnumber[9]; charname[8]; chardepartment[20];};main(){ structstudentstudent1,*p; printf(“\n学号:”);gets(student1.number); printf(\n姓名:”);gets(); printf(“\n系名:”);gets(student1.department); p=student1; printf(“\n学号:%s姓名:%s所在系:%s”,(*p).number,(*p).name,(*p).department);}第32页,共68页,星期日,2025年,2月5日4.用结构体变量的指针作函数参数在函数调用时,可以用结构体变量名做形参和实参,也可以用结构体变量的指针作函数参数。例12.6函数的返回值是结构体变量。#include“stdio.h”structstudent{charnumber[9]; charname[8]; chardepartment[20];};structstudentinput();第33页,共68页,星期日,2025年,2月5日main(){structstudentst1;st1=input();printf(“\n学号:%s姓名:%s所在系:%s”,st1.number,,st1.department);}structstudentinput(){structstudenttemp;printf(“\n学号:”);gets(temp.number);printf(“\n姓名:”);gets();printf(“\n所在系:”);gets(temp.department);returntemp;}第34页,共68页,星期日,2025年,2月5日例12.7用结构体变量名做形参和实参。#includestdio.hchar*s;structtree{inta;}x;voidfun(structtreet){t.a=t.a+10;t.s=computer;printf(%d,%s\n,x.a,x.s);}x.s=minicomputer;main(){x.a=6;func(x);}程序运行结果:16,computer用结构体变量名做实参、形参第35页,共68页,星期日,2025年,2月5日12.6结构体指针与链表链表是一种常见的动态地进行存储分配的数据结构。链表有“单向链表”、“双向链表”、“循环链表”、“双向循环链表”之分。1.链表结构链表作为一种常用的、能够实现动态存储分配的数据结构。(1)头指针变量head:指向链表的首结点。(2)每个结点由2个域组成:①数据域:存储结点本身的信息。②指针域:指向后继结点的指针。(3)尾结点的指针域置为“NULL(空)”,作为链表结束的标志。第36页,共68页,星期日,2025年,2月5日2.单向链表单向链表是按照输入数据的顺序建立的。它有一个“头指针”(图中为head),指向第一个元素;每一个元素称为“结

文档评论(0)

1亿VIP精品文档

相关文档