c语言--结构体
结构体
结构:是一些值的集合,这些值称为成员变量,可以是不同数据类型的变量。
关键字:struct
结构体的声明:
struct tag { member-list; }variable-list;
例:描述一个学生
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
struct Stu { //struct:结构体关键字 Stu:结构体标签 struct Stu 结构体类型 char name[5]; int age; char tele[20]; char sex[5]; }; //}s1,s2,s3;//三个全局结构体变量。尽量少的使用全局变量 int main() { struct Stu s1; return 0; }
typedef struct Stu { //struct:结构体关键字 Stu:结构体标签 struct Stu 结构体类型 char name[5]; int age; char tele[20]; char sex[5]; }Stu; //}s1,s2,s3;//三个全局结构体变量。尽量少的使用全局变量 int main() { struct Stu s1; Stu s2; return 0; }
typedef:可以将结构体的类型进行修改
第一个下面的s1,s2,s3是成员变量,第二个下面的Stu是类型
结构体变量的定义和初始化
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> struct T { char name[20]; int age; }; struct Stu { char name[20]; int age; char tele[20]; char sex[5]; struct T t; }; int main() { struct Stu s = { "阿跃",20,"19188888888","男",{"李华",18} }; printf("%s\n", s.name); printf("%d\n", s.age); printf("%s\n", s.tele); printf("%s\n", s.sex); printf("%s\n", s.t.name); printf("%d\n", s.t.age);
return 0; }
结构体成员的类型:可以是标量,数组,指针,甚至是其它结构体
结构体变量访问成员结构体变量的成员是通过点操作符(.)访问的,点操作符接受讲个操作符。
结构体传参:
例:
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> struct Stu { char name[20]; int age; }; void Pine(struct Stu p) { printf("%s\n", p.name); printf("%d\n", p.age); } void Pine2(struct Stu* p) { printf("%s\n", p->name); printf("%d\n", p->age); } int main() { struct Stu s = { "阿跃",20 }; Pine(s); Pine2(&s); return 0; }
无论是从时间上还是存储上,传址都比传值好。因为形参是实参的一份临时拷贝。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程