700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 结构体定义 typedef struct 用法详解和用法小结

结构体定义 typedef struct 用法详解和用法小结

时间:2023-05-01 21:19:28

相关推荐

结构体定义 typedef struct 用法详解和用法小结

typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。

具体区别在于:

若struct node{ }这样来定义结构体的话。在定义 node 的结构体变量时,需要这样写:struct node n;

若用typedef,可以这样写:typedef struct node{}NODE; 。在申请变量时就可以这样写:NODE n;就是自定义了一种数据类型。比如整型,用的时候是int age=10;int是数据类型,age是整型变量。同样typedef就是一种可以自定义类型的关键字,这样你就可以自定义类型了。

1、结构体

1)、结构体变量的定义可以放在结构体的声明之后:

struct Student{ //声明结构体char name[20];//姓名int num; //学号float score; //成绩};struct Student stu1; //定义结构体变量

2)、结构体变量的定义也可以与结构体的声明同时,这样就简化了代码:

struct Student{ char name[20]; int num; float score; }stu1; //在定义之后跟变量名

3)、还可以使用匿名结构体来定义结构体变量:

struct {//没有结构名char name[20]; int num; float score; }stu1;

但要注意的是这样的方式虽然简单,但不能再次定义新的结构体变量了。

访问结构成员

虽然结构类似一个数组,只是数组元素的数据类型是相同的,而结构中元素的数据类型是可以不同的。但结构不能像数组那样使用下标去访问其中的各个元素,而应该用结构成员运算符点(.)。即访问成员的一般形式是:

结构变量名 . 成员名

如 stu1 . name 表示学生stu1的姓名。

但如果结构体中的成员又是一个结构体,如:

struct Birthday{//声明结构体 Birthdayint year;int month;int day;};struct Student{ //声明结构体 Studentchar name[20]; int num;float score; struct Birthday birthday; //生日}stu1;

则用 stu1.birthday.year 访问出生的年份。

举例

#include <stdio.h>//定义结构体并声明变量struct people{int age;int id;}a;int main(){a.age = 20;printf("%d\n", a.age);}

2、typedef修饰的结构体

typedef修饰的结构体,表示自定义了一种数据类型

#include <stdio.h>struct people{int age;int id;}a;//a代表什么?typedef struct cat{int age;int id;}b;int main(){a.age = 20;printf("%d\n", a.age);//cat结构体被typedef修饰,表示已经把cat结构体定义为一种类型,这样就可以这样定义一个cat类型的变量b b1,b tom,b robinb tom;tom.age=100;printf("%d\n", tom.age);return 0;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。