A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© to_love 中级黑马   /  2015-8-26 22:25  /  441 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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;

1 个回复

倒序浏览
好长一串
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马