结构体类型定义(C语言)

结构体的定义形式如下:

struct 结构体名

{

  结构体成员

};

结构体变量的定义方式有三种:
1、先定义结构体,再定义变量:

eg.

struct student{

  char name[10];

  int age;

  int student_number;

};

struct student s1,s2;

2、定义结构体的同时定义变量:
eg.

struct student{

  char name[10];

  int age;

  int student_number;

}s1,s2;

在定义结构体student的同时定义了结构体变量s1,s2.

3、只定义结构体变量

eg.

struct{

  char name[10];

  int age;

  int student_number;

}s1,s2;

在这种情况下,如果还想定义一个变量s3,那么要使用和定义s1、s2一样的方法。

将typedef和结构体结合,比如说:

typedef struct _student{

  char name[10];

  int age;

  int student_number;

}student;

这个时候student就不是一个变量了,它是结构体struct _student的别名,如果想定义一个变量,就可以直接使用student

student s1;

而不需要struct _student s1;

另外还可以定义结构体指针类型:

typedef struct _student{

  char name[10];

  int age;

  int student_number;

}*student;

这个时候student s1;定义的变量就是一个结构体指针s1了。等价于struct _student *s1。

时间: 2024-10-05 14:42:17

结构体类型定义(C语言)的相关文章

语言中结构体变量和结构体类型的定义

1.结构体类型定义 定义方式1: Typedef struct  LNode {    int  data;  // 数据域    struct LNode   *next;  // 指针域 } *LinkList; 定义方式2: struct  LNode {    int  data;  // 数据域    struct LNode   *next;  // 指针域 }: Typedef struct  LNode  *LinkList; 以上两个定义方式是等价的,是将*LinkList定义

指向结构体类型的指针强制转换为指向另外一种结构体类型。会不会出现问题?

结构体和int等类型一样,都是数据类型.其他类型怎么转换,结构体就怎么转换,没有什么特殊的地方. 楼主可能想知道的不是结构体怎样强制转换这个问题吧,猜测,楼主想知道如下几个问题: 如果将一个结构体强制类型转换为另一个结构体(或者类型),那这个结构体的成员会怎样了? 如果将一个结构体强制类型转换为另一个结构体(或者类型),那么这个结构体成员的数值又会是什么了? 解答: 1.结构体的本质是:我们和C语言约定了一段内存空间的长短,及其内容的安排.假设下面两个结构体: struct A1 { int a

自定义数据类型 C++ 结构体类型 共同体类型 枚举类型 类类型{}

一.结构体类型 结构体类型,共用体类型,枚举类型,类类型等统称为自定义类型(user-defined-type,UDT). 结构体相当于其他高级语言中的记录(record);例如: struct Student{ int num; char name[20]; char sex; int agel float score; char addr[30]; }; 结构体声明的一般形式: struct 结构体类型名 {成员列表}: 结构体类型名用作结构体类型的标志,上面的Student就是结构体类型名

C语言中的系统时间结构体类型

在C语言涉及中经常需要定时触发事件,涉及到获取系统时间,其结构体类型有多种.Unix/Linux系统下有以下几种时间结构: 1.time_t 类型:长整型,一般用来表示从1970-01-01 00:00:00时以来的秒数,精确度:秒:由函数time()获取: 该类型定义在头文件 /usr/include/sys/time.h 中: #define _TIME_T       typedef   long   time_t;             #endif 函数定义:time_t   tim

结构体的定义及使用

结构体的定义 定义一个结构的一般形式为: struct 结构名 { 成员表列 } 成员表由若干个成员组成,每个成员都是该结构的一个组成部分. 对每个成员也必须作类型说明. 例如: struct stu { int num; char name[20]; int age; } 结构类型变量的说明 结构体定义并不是定义一个变量,而是定义了一种数据类型,这种类型是你定义的,它可以和语言本身所自有的简单数据类型一样使用(如 int ). 结构体本身并不会被作为数据而开辟内存,真正作为数据而在内存中存储的

C /C ++中结构体的定义

c语言中结构体的定义: struct 结构体名{ 成员列表: ..... }结构体变量: 7.1.1 结构体类型变量的定义结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有三种形式,分别介绍如下:1) 先定义结构体类型,再定义结构体类型变量:struct stu / *定义学生结构体类型* /{char name[20]; / * 学生姓名* /char sex; / * 性别* /long num;

Swift2.0(6)结构体类型&枚举类型

结构体类型 基础数据类型都是结构体,如Int  Float Bool等,是Swift自带的并且作为开发基础供开发者使用 在Swift中,结构体(Struct)和类类型(Class)非常相似,结构体是值类型,类是引用类型. 定义格式: struct 名称 : 协议... { 属性和方法 } 如: struct Sword { var length:Int = 11 var name:String = "hello world" func description() { print(&qu

结构体中定义函数指针

转自:http://blog.csdn.net/unix21/article/details/9293877 结构体指针变量的定义,定义结构体变量的一般形式如下: 形式1:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;… }; struct 结构体标识符 *指针变量名; 变量初始化一:struct结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n }; 形式2:在定义类型的同时定义变量 struct结构体标识符 { 成员变量列表;… } *指针变量名;

typedef 和 自定义结构体类型

在自定义结构体类型时会用到typedef关键字.大家都知道typedef是取别名的意思,在C语言中跟它容易混淆的有const,#define等,其区别不在本篇文章讨论之列. 1 /*定义单链表结点类型*/ 2 3 typedef char ElemType; 4 5 typedef struct dNode {//声明单链表结点类型 6 7 ElemType data; 8 9 struct dNode *next; //指针域 }LNode, *LinkList; //定义此结构体变量stru