05结构体的使用
结构体
-
什么叫结构体
- 结构体是用户根据实际需要自己定义的复合数据类型
-
为什么会出现结构体
- 为了表示一些复杂的数据,而普通的基本类型变量无法满足要求
-
如何使用结构体:两种方式
-
struct Student st = {1000, "zhangsan", 20};
-
struct Student * pst = &st;//定义结构体指针变量,把结构体地址赋予
-
st.sid
-
pst->sid//结构体指针变量pst 指向 结构体变量中的sid成员
- 注意事项:结构体变量不能加减乘除,但可以相互赋值。
-
-
C语言中复杂变量通过结构体表现,Java通过类来表现
类
class Student { int sid; String name; int sage; void inputStudent() { } void showStudent() { } }
结构体
struct Student { int sid; String name; int sage; };//分号不能省
程序
# include<stdio.h> struct Student//定义数据类型,有三个成员。名字:struct Student { int sid; char name[200]; int age; };//分号不能省 int main(void) { struct Student st = {1000, "zhangsan", 20}; printf("%d %s %d\n",st.sid, sid.name, st.age); st.sid = 99; //st.name = "list";//error strcpy(st.name,"list"); st.age = 22; printf("%d %s %d\n", st.sid, st.name, st.age); //printf("%d %s %d\n", st);//error return 0; }
```c int main(void) { struct Student st = {1000, "zhangsan", 20}; //st.sid = 99; //第一种方式 struct Student *pst; pst = &st; pst->sid = 99;//pst->sid 等价于 (*pst).sid 而(*pst) return 0; } ```
void f(struct Student * pst);
int main(void)
{
struct Student st;
f(&st);
printf("%d %s %d\n",st.sid, st.name,st.age);
return 0;
}
void f(struct Student * pst)
{
(*pst).sid = 99;
strcpy(pst->name,"zhangsan");
pst->age = 22;
}
不推荐的方式:
- 耗内存和时间,没有指针的占内存小和速度快。
int main(void)
{
struct Student st;
g(st);
printf("%d %s %d\n",st.sid, st.name,st.age);
return 0;
}
void f(struct Student st)
{
st.sid = 99;
strcpy(st.name,"zhangsan");
st.age = 22;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人