C语言中使用结构体

1、先定义结构体

struct stu

{

  char name[20];

  long number;

  float score[4];

} ;

再定义指向结构体类型变量的指针变量:

struct stu *p1, *p2 ;或者

struct stu p1, p2 ;

定义指针变量p 1、p 2,分别指向结构体类型变量。

2、

在定义类型的同时定义变量,如

struct student{

  char name[20];

  long number;

  float score[4];

}student1, student2;

 

3、直接定义结构类型变量,如

struct{

  char name[20];

  long number;

  float score[4];

}student1, student2;

 

注意:

定义的结构体如果是指针,访问成员时就用“->”如果定义的是结构体变量,访问成员时就用“.”这个使用方式大家在初学STM32的的时候在库函数中会遇到的,

 

4、

struct和typedef struct的区别

 

 (1)在C中定义一个结构体类型要用typedef:typedef structStudent {

             char name[20];

             long number;

             float score[4];

          }Stu; 

在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明)

这里的Stu实际上就是struct Student的别名。Stu==struct Student另外这里也可以不写Student(于是也不能struct Student stu1;了,必须是Stu stu1;)

typedef struct {

      char name[20];

      long number;

      float score[4];

 }Stu;    

但在c++里很简单,直接structStudent {

      char name[20];

      long number;

      float score[4];

};

于是就定义了结构体类型Student,声明变量时直接Student stu1,stu2;

(2)在c++中如果用typedef的话,又会造成区别:struct  Student  {  

      char name[20];

      long number;

      float score[4];

 }stu1;//stu1是一个变量  

typedef  struct   Student2   {  

      char name[20];

      long number;

      float score[4];

 }stu2;//stu2是一个结构体类型=structStudent  

    使用时可以直接访问stu1.a 但是stu2则必须先   stu2 s2;    

然后    s2.a=10;

posted @ 2015-08-17 14:59  苍月代表我  阅读(163)  评论(0编辑  收藏  举报