结构体的定义、初始化和赋值

  结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构。

  在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体可以被声明为变量、指针或数组等,用以实现较复杂的数据结构。结构体同时也是一些元素的集合,这些元素称为结构体的成员(member),且这些成员可以为不同的类型,成员一般用名字访问。

结构体的定义、初始化和赋值

  结构体定义

结构体的定义、初始化和赋值

  结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。

  struct tag {

  member-list

  } variable-list ;

  在一般情况下,tag、member-list、variable-list这3部分至少要出现2个。以下为示例:

  //此声明声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

  //同时又声明了结构体变量s1

  //这个结构体并没有标明其标签

  struct {

  int a;

  char b;

  double c;

  } s1;

  //同上声明了拥有3个成员的结构体,分别为整型的a,字符型的b和双精度的c

  //结构体的标签被命名为SIMPLE,没有声明变量

  struct SIMPLE{

  int a;

  char b;

  double c;

  };

  //用SIMPLE标签的结构体,另外声明了变量t1、t2、t3

  struct SIMPLE t1, t2[20], *t3;

  //也可以用typedef创建新类型

  typedef struct{

  int a;

  char b;

  double c;

  } Simple2;

  //现在可以用Simple2作为类型声明新的结构体变量

  Simple2 u1, u2[20], *u3;

  在上面的声明中,第一个和第二声明被编译器当作两个完全不同的类型,即使他们的成员列表是一样的,如果令t3=&s1,则是非法的。

  定义结构变量的方法

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

  例如:

  struct stu

  {

  int num;

  char name[20];

  int age;

  };

  struct stu boy1,boy2;

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

  也可以用宏定义使一个符号常量来表示一个结构类型, 例如:

  #define STU struct stu

  STU

  {

  int num;

  char name[20];

  int age;

  };

  STU boy1,boy2;

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

  例如:

  struct stu

  {

  int num;

  char name[20];

  int age;

  }boy1,boy2;

  3、直接说明结构变量。

  例如:

  struct

  {

  int num;

  char name[20];

  int age;

  }boy1,boy2;

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

  说明了boy1,boy2变量为stu类型后,即可向这两个变量中的各个成员赋值。

  在上述stu结构定义中,所有的成员都是基本数据类型或数组类型。成员也可以又是一个结构, 即构成了嵌套的结构。

  使用结构变量成员的一般形式是:

  结构变量名。成员名

  例如:

  boy1.num

  /*即第一个人的学号 */

  如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。

  例如:boy1.birthday.month

  即第一个人出生的月份成员可以在程序中单独使用,与普通变量完全相同。

技术专区

  • mybatis动态sql详解
  • 用VHDL语言设计数据传输系统中的HDB3编码器
  • 裸机程序如何驱动硬件?看前辈是怎么说的
  • 应用面向对象编程SoC原则的典型示例
  • 嵌入式开发之java常用开发工具介绍
  • 结构体的定义、初始化和赋值已关闭评论
    A+
发布日期:2019年07月14日  所属分类:物联网