c语言-结构体
2023-12-26 06:09:41
前言
本篇文章介绍c语言的结构体的声明和定义,以及结构体的基本使用。
一、结构体
结构:结构是指一些值的集合,这些值称为成员变量,结构的每个成员可以是不同类型的变量。
结构体是用来存储复杂类型的的一种数据类型。
1.1 结构体的声明
结构体的语法结构如下:
struct 结构体名称{
数据类型1 成员变量1;
数据类型2 成员变量2;
...
};
例如,声明一个存储学生基本信息的结构体类型
//1.结构体类型的声明
struct Stu {
char name[20];
int age;
float height;
char sex[5]; //一个中文占两个字符
};
当然,结构体的成员变量的类型也可以是结构体类型,例如:
struct Class //声明班级信息
{
char classname[20];
char classnumber[20];
struct Stu student[20]; //声明一个结构体数组
};
1.2 结构体变量的定义
结构体变量的定义有两种方式:
- 定义结构体局部变量
//1.结构体类型的声明
struct Stu {
char name[20];
int age;
float height;
char sex[5]; //一个中文占两个字符
};
int main()
{
struct Stu student;//定义结构体局部变量
return 0;
}
- 定义结构体全局变量
定义结构体全局变量的方式是在声明结构体时,定义结构体全局变量
struct Stu {
char name[20];
int age;
float height;
char sex[5]; //一个中文占两个字符
}student1,stuent2,...; //定义结构体全局变量
此时,结构体变量student1和student2为全局变量
1.3 结构体变量的初始化
结构体变量的初始化一般是在定义时进行初始化,例如
//1.结构体类型的声明
struct Stu {
char name[20];
int age;
float height;
char sex[5]; //一个中文占两个字符
};
int main()
{
struct Stu student = {"pys",23,180,"男"};//初始化结构体
return 0;
}
1.4 访问结构体成员变量
访问结构体成员变量有两种方式
- 通过.操作符访问成员变量
//1.结构体类型的声明
struct Stu {
char name[20];
int age;
float height;
char sex[5]; //一个中文占两个字符
};
int main()
{
struct Stu student = {"pys",23,180.0f,"男"};
//访问成员变量
printf("%s %d %f %s", student.name, student.age, student.height, student.sex);
return 0;
}
- 通过->操作符访问成员变量
//1.结构体类型的声明
struct Stu {
char name[20];
int age;
float height;
char sex[5]; //一个中文占两个字符
};
int main()
{
struct Stu student = {"pys",23,180.0f,"男"};
struct Stu* ps = &student;
//利用->访问成员变量
printf("%s %d %.2f %s", ps->name,ps->age,ps->height,ps->sex);
return 0;
}
1.5 结构体传参
结构体传参有两种方式,分别是
- 结构体值传参
结构体值传参时,形式参数作为实际参数的一份临时拷贝。 - 结构体地址传参
结构体地址传参,将实际参数的地址传给形式参数,形式参数的类型为结构体指针。
具体内容,查看下面代码,分析两者的不同之处。
//3. 结构体传参
struct Node {
int data;
struct Node* next; //声明一个结构体指针
};
//3.1 结构体值传参
void print1_Node(struct Node node)
{
printf("%d\n", node.data);
}
//3.2 结构体地址传参
void print2_Node(struct Node* pnode)
{
printf("%d\n", pnode->data);
}
int main()
{
struct Node node = { 23,NULL }; //结构体变量初始化
//结构体值传参
print1_Node(node);
//结构体地址传参
print2_Node(&node);
return 0;
}
总结
本篇文章介绍了c语言中结构体的声明、定义和初始化,以及如何访问结构体的成员变量,最后介绍了结构体的传参。
文章来源:https://blog.csdn.net/pyc68/article/details/135211015
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!