当前位置: 首页 > news >正文

08:结构体

结构体

  • 1、为什么需要结构体
  • 2、如何定义结构体
  • 3、怎么使用结构体变量
    • 3.1、赋值和初始化
    • 3.2、结构体变量的输出

1、为什么需要结构体

为了表示一些复杂的事物,而普通的基本类型无法满足实际要求。什么叫结构体
把一些基本类型数据组合在一起形成的一个新的数据类型,这个叫做结构体(复合数据类型)。
列如:

#include <stdio.h>struct Student//结构体,定义了一个Student的数据类型。由int,float,char类型组成
{int age;float score;char sex;
};//逗号不能省int main (void)
{struct Student st = {15, 66.6, 'F'};//给Student类型命名。return 0;
}

在这里插入图片描述

2、如何定义结构体

第一种方式:如上面的例子
第二种方式:

#include <stdio.h>struct Student
{int age;float score;char sex;
}st;//直接在这里定义数据类型的名字int main (void)
{struct Student st = {15, 66.6, 'F'};return 0;
}

推荐使用第一种方式。

3、怎么使用结构体变量

3.1、赋值和初始化

赋值:

 第一种:struct Student st = {15, 66.6, 'F'};第二种:struct Student st;st.age = 15;st.score = 66.6;st.sex = 'F';

3.2、结构体变量的输出

第一种:

printf("%d,%f,%c\n",st.age,st.score,st.sex);

第二种:

struct Student* pst = &st;
printf("%d,%f,%c",pst->age,pst->score,pst->sex);

定义一个指针变量pst,用来存放Student数据类型的地址。
pst->age等价于(*pst).age ,也等价于st.age(pst所指向的那个结构体变量中的age这个成员)

代码

/*通过函数对结构体变量的输入和输出*/	
#include <stdio.h>
#include <string.h>//strcpy使用的声明void StudentInput(struct Student* pstu);
void StudentOutput(struct Student st);struct Student
{int age;float score;char name[100];
};int main (void)
{struct Student st;StudentInput(&st);StudentOutput(st);return 0;
}void StudentInput(struct Student* pstu)
{(*pstu).age = 16;pstu->score = 66.4f;strcpy(pstu->name,"李四");}void StudentOutput(struct Student st)
{printf("%d,%f,%s\n",st.age,st.score,st.name);
}

ok,学到这里,我们对C语言也算有了基本的了解。其中还有很多的小细节还需要不断的学习进行丰富

http://www.lryc.cn/news/388388.html

相关文章:

  • 喜讯!安全狗荣获“2023年网络安全技术支撑优秀单位”称号
  • android里面json操作
  • MATLAB的.m文件与Python的.py文件:比较与互参
  • 武汉星起航:自运营团队精准把握亚马逊红利,引领跨境电商新潮流
  • 嵌入式计算器模块实现
  • tomcat定时重启
  • 构建LangChain应用程序的示例代码:48、如何使用非文本生成工具创建多模态代理
  • 【笔记】记录一次全新的Java项目部署过程
  • 达梦数据库系列—14. 表空间的备份和还原
  • 奔驰G350升级原厂自适应悬挂系统有哪些作用
  • 一个启动脚本例子
  • grpc学习golang版( 六、服务器流式传输 )
  • ubuntu语音库ALSA报错具体原因
  • Java高级重点知识点-17-异常
  • DM达梦数据库函数分析(与mysql对应函数区别及用法分析)
  • ROS2用c++开发参数节点通信
  • docker 部署jitsi meet
  • 【Pytest自动化测试详解】
  • 6-14题连接 - 高频 SQL 50 题基础版
  • 深度挖掘数据资产,洞察业务先机:利用先进的数据分析技术,精准把握市场趋势,洞悉客户需求,为业务决策提供有力支持,实现持续增长与创新
  • 亚马逊广告如何设置关键词竞价获取最优广告投入产出比 (ACOS)
  • vision mamba-yolov8:结合Vmamba的yolov8目标检测改进实现
  • 2025秋招NLP算法面试真题(十一)-Transformer的并行化
  • 如何在本地一键配置最强国产大模型
  • 代码随想录算法训练营第九天|151.翻转字符串里的单词、右旋字符串、28. 实现 strStr()、459.重复的子字符串
  • 第6天:文件操作和异常处理
  • 关于freesql 频繁报“【主库】状态不可用,等待后台检查程序恢复方可使用”异常的解决。
  • Spring Boot中如何使用Flyway进行数据库版本控制
  • 心理学|人格心理学——人格心理学单科作业(中科院)
  • 第三方服务提供商的五大风险