结构体与结构体数组

2023-05-16

结构体跟数组的功能有些相似,都是变量的集合。不同点在于,数组中的变量的类型都是一样的,而结构体中的变量的类型是可以自己根据需求来定的。在使用方面,数组能直接在主函数中定义、访问,而结构体再做这些操作前需要在主函数之前定义出结构体的模板,之后才能对结构体进行定义、赋值、访问等等。

struct Player
{
	char name[32];
	char sex[32];
	char postion[32];
	float height;
	float weight;
};

这是我定义的一个结构体模板。Player是结构体的名字,编程习惯一般打一个字母大写。这个结构体中包含5个变量,两个float型,三个char型。结构体中的变量类型不需要一样,完全根据需求来。在定义结构体模板时,变量只用定义出类型和变量名,不能把内容也定义了。注意大括号后面的分号别忘记。

#include <stdio.h>
#include <string.h>

struct Player
{
	char name[32];
	char sex[32];
	char postion[32];
	float height;
	float weight;
};

int main(){
	struct Player player1;
	struct Player player2=
	{"西谷夕","男","自由人",159.3,51.1,};
	
	strcpy(player1.name,"日向翔阳");
	strcpy(player1.sex,"男");
	strcpy(player1.postion,"副攻");
	player1.height = 162.8;
	player1.weight = 51.9;
	player1.touchHight = 333;
	
	printf("姓名:%s\n性别:%s\n职位:%s\n",player1.name,player1.sex,player1.postion);
	printf("身高:%.1fcm\n体重:%.1fkg\n摸高:%dcm\n",player1.height,player1.weight);
	puts("");
	printf("姓名:%s\n性别:%s\n职位:%s\n",player2.name,player2.sex,player2.postion);
	printf("身高:%.1fcm\n体重:%.1fkg\n",player2.height,player2.weight);
	
	return 0;
}

定义好结构体的模板后,就能在主函数中开始使用结构体。跟普通变量类似,在主函数中先定义出要用的结构体的名字,struct Player player1;struct Player player2;就像这样。然后就可以对player1和player2中我们规定好的变量进行赋值。赋值的方法有两种,第一种是用对用变量形势的赋值语句来一个一个的赋值,例如player1使用的方法。第二种是将内容按照模板中的顺序排列好一次性赋值,例如player2使用的方法。两种方法各有利弊,都需要掌握。要注意的是使用第一种方法时,赋值对应的变量名跟给普通变量赋值不一样。给结构体中的变量赋值时对应的变量名前要加上对应的结构体名和'.'运算符。如player1.name。这在使用结构体中变量的时候都需要注意。

对结构体的基本使用了解后,我们可以根据一定的要求来输出结构体中的变量。

#include <stdio.h>
#include <string.h>

struct Player
{
	char name[32];
	char sex[32];
	char postion[32];
	float height;
	float weight;
};

int main(){
	struct InformationOfPlayer player1;
	struct InformationOfPlayer player2=
	{"西谷夕","男","自由人",159.3,51.1};
	struct InformationOfPlayer heighter;
	
	heighter = player1;
	
	strcpy(player1.name,"日向翔阳");
	strcpy(player1.sex,"男");
	strcpy(player1.postion,"副攻");
	player1.height = 162.8;
	player1.weight = 51.9;
	
	if(player1.height < player2.height){
		heighter = player2;
	}
	printf("姓名:%s\n性别:%s\n职位:%s\n",heighter.name,heighter.sex,heighter.postion);
	printf("身高:%.1fcm\n体重:%.1fkg\n",heighter.height,heighter.weight);
	
	return 0;
}

我的结构体是运动员的身体信息,现在我想要在我赋值完毕的两个结构体中输出身高更高的那一个。我可以用if来对身高进行比较,然后老老实实的写不同情况下的输出代码,但这太蛮烦,而且显得我有些傻。所以我使用上面代码的方法来进行输出。我再定义一个结构体heighter,并让它等于第一个结构体,然后再判断两个结构体中的height,如果第二个更高,则让heighter结构体等于第二个结构体。输出操作就是始终输出heighter中的变量。这种方法就简洁得多。

结构体数组,数组中的元素都是结构体。

#include <stdio.h>
#include <string.h>

struct Player
{
	char name[32];
	char sex[32];
	char postion[32];
	float height;
	float weight;
};

int main(){
	int len;
	int i;
	
	struct Player team[7]={
		{"西谷夕","男","自由人",159.3,51.1},
		{"日向翔阳","男","副攻",162.8,51.9},
		{"影山飞雄","男","二传",188,66.3},
		{"田中龙之介","男","主攻",177.2,68.8},
	    {"泽村大地","男","接应",176.7,70.1},
		{"东峰旭","男","主攻",184.7,75.2},
		{"月岛莹","男","副攻",195,68.4}
	};
	
	len = sizeof(team)/sizeof(team[0]);
	
	for(i = 0;i < len;i++){
		printf("姓名:%s\n性别:%s\n职位:%s\n",team[i].name,team[i].sex,team[i].postion);
		printf("身高:%.1fcm\n体重:%.1fkg\n",team[i].height,team[i].weight);
		puts("");
	}
	
	return 0;
}

使用前也需要先定好结构体模板,结构体数组的赋值跟二维数组一样,我这里是直接给team这个结构体数组在程序中赋值,也可以通过键盘赋值,方法跟二维数组一样,只是要注意赋值方式要跟结构体中的变量类型匹配。结构体数组中的变量的输出方法跟普通的结构体变量一样,不过它可以借助循环输出,这部分功能来自数组。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

结构体与结构体数组 的相关文章

  • VS中的cmake

    新建cmake项目 要保证VS安装了SDK xff0c 这里是VS2019版本 打开创建新项目 查找cmake 设置路径和项目名称 新建项目下有三个文件 xff1a xff08 1 xff09 与项目同名的cpp文件 xff08 2 xff
  • 【Ubuntu-22.04.2新手安装教程】

    新手安装教程 很多小伙伴在Ubuntu的安装上总会有疑问 xff0c 今天就来给小可爱们来一套完整的Ubuntu快速安装教程 VMware Workstation Pro安装 本多的VMware Workstation Pro是从电脑管家那
  • MySql 数据库查看视图的创建sql语句

    在网上能找到大量的视图创建 修改 删除的语句 xff0c 但是查看创建语句的语句不好找 show create view VIEW NAME
  • 踩坑!WSL2报错:docker unrecognized service

    WSL2安装Docker后执行 sudo service docker start 报错 xff1a docker unrecognized service实录 在WSL中安装Docker要使用命令 xff1a curl https get
  • docker-compose安装教程

    docker compose安装教程 一 docker compose简介二 安装docker compose 1 下载docker compose2 运行 96 docker compose 96 xff0c 提示权限不够3 添加权限4
  • linux下gzip

    gunzip file1 gz 解压一个叫做 39 file1 gz 的文件 gzip file1 压缩一个叫做 39 file1 的文件 gzip 9 file1 最大程度压缩
  • Ubuntu18.04 更新后无法进入系统

    参考博客 xff1a http tieba baidu com p 5854786601 traceid 61 经常看到很多朋友说ubuntu系统更新后 xff08 特别是linux内核更新后 xff09 重新启动时进不了桌面 xff0c
  • 数学分析 - 隐函数

    简介 xff1a 用多元函数 xff08 隐函数中自变量和因变量同时存在的表达式的作为多元函数的表达式 xff09 的思维来分析隐函数 隐函数的概念 定义 xff1a 隐函数的定义 xff08 一个多元函数F x y 构成的方程F x y
  • Error occurred while trying to proxy request项目突然起不来了

    1 如果你是之前还能项目能正常运行 xff0c 突然启不来了 xff0c 或者别人启起来 xff0c 你启不来 xff0c 请尝试以下办法 xff08 1 xff09 npm版本过低 步骤一 xff1a 查看npm版本 xff1a npm
  • Docker Debian安装Docker

    Debian安装Docker 内容由 网络搜罗整理而来 xff0c 记录与共享 一 APT安装 官方Debian存储库中提供的Docker安装包可能不是最新版本 为了确保我们获得最新版本 xff0c 我们将从官方Docker存储库安装Doc
  • 使用VsCode配置MySQL实现连接、查询、等功能

    场景 xff1a 使用VsCode配置MySQL实现连接 查询 等功能 xff08 mrx xff09 步骤 xff1a 打开vscode左边的拓展栏 1 搜索MySQL MySQL Syntax两个插件 xff0c 并安装 xff1b 2
  • centos7安装mysql5.7步骤(图解版)

    目录 一 下载mysql5 7安装包 二 mysql5 7安装包上传到linux服务器 三 检查系统是否安装过mysql 四 卸载CentOS7系统自带mariadb 五 检查有无安装过mysql 用户组 没有的话创建 六 安装mysql5
  • IDEA报错之Failed to start bean ‘documentationPluginsBootstrapper‘问题及解决方案

    笔者今日创建一个Spring Boot 项目准备做产品 基于IDEA搭建是非常容易的 但是万万没想到 居然一切顺理成章的创建之后 运行报错 非常痛惜 错误截图如下 核心错误 Failed to start bean documentatio
  • Linux界面和字体大小调整

    1 调整桌面显示屏幕大小 点击页面上方的系统 gt 首选项 gt 显示 点击显示后出现显示器分辨率调节 xff0c 将分辨率选择最大基本可以覆盖虚拟机整个屏幕 2 调整屏幕字体大小 点击页面上方的系统 gt 首选项 gt 外观 选择字体栏
  • SQL语句:分组查询

    在对数据表中数据进行统计时 xff0c 可能需要按照一定的类别分别进行统计 比如查询每个部门的员工数 使用GROUP BY按某个字段 xff0c 或者多个字段中的值 xff0c 进行分组 xff0c 字段中值相同的为一组 语法格式 查询列表
  • Ubuntu18.04安装后基础配置(换源+WIFI适配+ROS+VScode)

    简单记录一下 xff0c 新安装好的Ubuntu系统 xff0c 需要什么初始化步骤呢 xff1f 1 建议首先换源 xff0c 换清华源 xff08 需要插网线 xff09 首先连接网线 xff0c 系统需要有网络环境 打开 软件和更新
  • PyInstaller库—Python第三方库—程序打包

    PyInstaller的作用是将Python源文件 xff08 py xff09 打包 xff0c 变成直接可运行的可执行文件 首先需要下载安装PyInstaller库 xff0c 在cmd 中输入pip install PyInstall
  • vcpkg问题-环境配置

    参考博客 xff1a Visual Studio开源库集成器Vcpkg全教程 利用Vcpkg轻松集成开源第三方库 https blog csdn net cjmqas article details 79282847 先说一些装好以后注意的
  • PVE系统安装

    PVE是专为家庭设计打造的 xff0c 永久免费的开源平台 xff0c 在低配置的小主机上都能轻松运行的一款轻量级平台 PVE是专业的虚拟机平台 xff0c 提供一个家庭设备集中管理平台 xff0c 你可以利用它安装任何你想要的系统 1 制
  • 初识c语言系列-1-第一个c语言程序

    目录 1 61 61 该系列的介绍 61 61 2 61 61 未来的打算 61 61 3 61 61 简单介绍c语言 61 61 4 61 61 第一个c语言程序 61 61 1 该系列的介绍 首先呢 xff0c 开始这个系列之前呢 xf

随机推荐