学习数据结构时总是碰到结构体、链表、指针等知识,这些知识在谭浩强的C语言书里都有,现在忘得差不多了,刚才又复习了一下数据结构,算是温故而知新吧。

定义一个结构的一般形式为:
struct 结构名
{成员表列};

成员表列由若干个成员组成,每个成员都是该结构的一个组成部分。对每个成员也必须作类型说明,其形式为:
  类型说明符 成员名;
成员名的命名应符合标识符的书写规定。例如:

  1. struct stu  
  2. {  
  3. int num;  
  4. char name[20];  
  5. char sex;  
  6. float score;  
  7. };  

在这个结构定义中,结构名为stu,该结构由4 个成员组成。第一个成员为num,整型变量;第二个成员为name,字符数组;第三个成员为sex,字符变量;第四个成员为score,实型变量。应注意在括号后的分号是不可少的。结构定义之后,即可进行变量说明。凡说明为结构stu 的变量都由上述4 个成员组成。由此可见, 结构是一种复杂的数据类型,是数目固定,类型不同的若干有序变量的集合。

定义变量的三种方式:

1、先定义结构,再说明结构变量。
如:

  1. struct stu  
  2. {  
  3. int num;  
  4. char name[20];  
  5. char sex;  
  6. float score;  
  7. };  
  8. struct stu boy1,boy2;  

 说明了两个变量boy1 和boy2 为stu 结构类型。

2、在定义结构类型的同时说明结构变量

  1. struct stu  
  2. {  
  3. int num;  
  4. char name[20];  
  5. char sex;  
  6. float score;  
  7. }boy1,boy2; 

 这种形式的说明的一般形式为:
struct 结构名
{
成员表列
}变量名表列;

3、直接说明结构变量

  1. struct 
  2. {  
  3. int num;  
  4. char name[20];  
  5. char sex;  
  6. float score;  
  7. }boy1,boy2; 

 这种形式的说明的一般形式为:
struct
{
成员表列
}变量名表列;


第三种方法与第二种方法的区别在于第三种方法中省去了结构名,而直接给出结构变量。

 当然成员变量也可以是结构体类型变量:

  1. struct date  
  2. {  
  3. int month;  
  4. int day;  
  5. int year;  
  6. };  
  7. struct{  
  8. int num;  
  9. char name[20];  
  10. char sex;  
  11. struct date birthday;  
  12. float score;  
  13. }boy1,boy2;