C语言 百分网手机站

计算机二级C语言知识点结构体和共用体

时间:2018-06-07 C语言 我要投稿

  【考点1】结构体类型的说明

  结构体是若干个类型数据的集合,

  结构体类型说明格式:

  struct 类型名 {类型1 成员名1;类型2 成员名2;……};,以上整个部分是一个数据类型,与整型的int是同样地位。可用typedef把结构体类型替换成一个只有几个字母的简短标识符。

  【考点2】结构体变量的定义

  结构体变量是用说明的结构体类型所定义的一个变量,与结构体类型不是一回事。一个结构体变量所占字节数为其所有成员所占字节数之和。如struct stu{char name[10];int age;} a,b;则表明定义了两个结构体变量a,b,每个变量占14个字节。a,b与int i,j;中的变量i,j是同样地位。typedef 考的很多(教材150页例6)。

  【考点3】结构体成员的引用

  引用成员可用以下3种方式:(1)结构体变量名.成员名;(2)指针变量名->成员名:(3)(*指针变量名).成员名。点(.)称为成员运算符,箭头(->)称为结构指向运算符。

  【考点4】共用体

  共用体的使用格式与结构体相似,共用体定义的关键字为union,共用体所占字节数是所有成员中字节数最大的那个。

  union TT

  { int a;

  char ch[2];} t1 ;

  main()

  {t1.a=0x1234;

  printf("%x ",t1.ch[0] );

  printf("%x ",t1.ch[1] );}

  考点一: sizeof (struct TT) = 2;

  考点二: TT t1 ; t1.a=0x1234;

  那么 ch[0]=0x 34; ch[1]=0x12

  结构体和共用体以及链表要掌握最简单的。typedef 考的很多,而且一定要知道如何引用结构体中的各个变量,链表中如何填加和删除节点,以及何如构成一个简单的链表,一定记住链表中的节点是有两个域,一个放数值,一个放指针。

  【考点5】链表

  链表是由一个个结点构成的,一个结点就是一个结构体变量。每个结点可以分为数据域与指针域两个部分,数据域用来存放要存储的数据,指针域用来指向下一个结点。链表是考试中的难点,在C语言和公共基础部分都会考到,要掌握,链表中如何增加和删除节点(每年都考),以及何如构成一个简单的链表,一定记住链表中的节点是有两个域,一个放数值,一个放指针。