您的位置:首页 > 编程语言 > C语言/C++

【C语言的学习】第十三回合:结构体大集合

2013-09-24 06:57 330 查看
第十三回合:结构体大集合

A: 结构体:是数据结构类型,把有内在联系的不同类型的数据统一成一个整体,使它们相互关联。又是变量的集合,可以单独使用其的成员。

  定义:

       struct 结构体名 



  类型标识符 
成员名1;

  类型标识符 
成员名2;

    ……

};     //分号一定不能省

PS:  

(1)   结构定义并不预留内存,结构体变量的定义才引起存储分配

(2)   结构体成员的数据类型可以是C语言的基本数据类型,也可以是数组和指针类型。还可以是自定义类型,成员的排列不分先后次序

(3)   结构体名是合法命名的标识符

(4)   结构定义仅描述了一个结构的形式。如果要在程序里使用结构,需要声明结构变量。

B: 结构体的输入输出

(a)      结构体变量不能整体输入输出,要通过成员运算符“.”,逐个访问其成员

如:

声明:

   struct  date             

 {     int year; 

       int  month;

       int  day;

  };

struct date  birth;

输出的格式:

正确的输出格式:

printf("%d, %d, %d",birth.year, birth.month, birth.day);

 

下面的方法是错误的:

printf("%d,%d, %d",birth);

C:结构体变量的初始化

(a)      一般形式:

结构体类型名  结构体变量= {初始表};

(b)      

1)间接初始化

strict  ST    

{    

int   num ;

     char name[20];

     char  sex;

     float score;

     struct date birthday;

 };

下面在main()中初始化

Struct STstudent  ={102,  "Zhangsan",  'M',  85,{1980,9,20}};

2)直接在结构体定义时初始化

   strict ST      

{    

int   num ;

     char name[20];

     char  sex;

     float score;

     struct date birthday;

 } student ={102,  "Zhangsan",  'M',  85,{1980,9,20} } ;

D:结构体数组和结构体指针的定义、初始化跟上面的都一样,没什么不同。只不过结构体指针的访问除了用运算符“.”(点)访问,还可用指向运算符“->”访问(位置还是和用‘.’访问的位置一样)。

(复习做的笔记,还在整理中。。。。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息