c 语言 ---- 结构体

什么是结构体

自定义的数据类型

结构体的声明定义


//1.先声明再定义
struct point{int x;int y;
};struct point p1,p2;//2.声明的同时定义
struct point{int x;int y;
}p1,p2;

typedef定义别名
关键字typedef用于为系统固有的或者程序员自定义的数据类型定义一个别名。数据类型的别名通常使用大写字母。
typedef int INTEGER;
这样就为int定义了一个新的名字INTEGER,int与INTEGER是一个意思,是完全等价的。

所以,我们当然也可以使用typedef来为结构体定义一个别名,让我们使用更加方便。

typedef struct student{char name[20]; long long id; int age; float score; 
}STU;//声明结构体的同时起一个别名,STUDENT就相当于struct student

结构体内部变量的访问

访问格式:`结构体变量名`+`.`+`数据变量名`
#include <stdio.h>struct student{char name[20];//姓名int age;//年龄char gender;//性别long long id;//学号
};//先声明
typedef struct student STUDENT;//再起别名int main(){STUDENT st1;//初始化st1.age = 18;printf("%d",st1.age);//赋值初始化STUDENT stu= {"李华",18,'w',202231061201};return 0;
}

使用

结构体指针

#include <stdio.h>struct student{char name[20]; long long id; int age; char gender; 
};
typedef struct student STUDENT;int main(){STUDENT *st1;//定义一个STUDENT类型的指针STUDENT stu;//定义一个STUDNET结构体st1 = &stu;//将是st1指针指向stust1->id = 202231061201;//注意用的是->scanf("%s",st1->name);scanf("%d",&st1->age);st1->gender = 'w';printf("%s%d岁了\n",st1->name,st1->age);printf("%s%d岁了",(*st1).name,(*st1).age);//st1指针解引用之后就与普通结构体变量一样用.return 0;
}

结构体数组

#include <stdio.h>struct student{char name[20];//姓名int age;//年龄char gender;//性别long long id;//学号
};
typedef struct student STUDENT;int main(){STUDENT stu[3] = {{"李华",18,'w',202231061201},{"小红",19,'m',202231061202},{"小明",20,'w',202231061203}};return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/16996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用Python队列生产者消费者模式构建高效爬虫

目录 一、引言 二、生产者消费者模式概述 三、Python中的队列实现 四、生产者消费者模式在爬虫中的应用 五、实例分析 生产者类&#xff08;Producer&#xff09; 消费者类&#xff08;Consumer&#xff09; 主程序 六、总结 一、引言 随着互联网的发展&#xff0c;信…

Bug:Linux用户拥有r权限但无法打开文件【Linux权限体系】

Bug&#xff1a;Linux用户拥有r权限但无法打开文件【Linux权限体系】 0 问题描述&解决 问题描述&#xff1a; 通过go编写了一个程序&#xff0c;产生的/var/log/xx日志文件发现普通用户无权限打开 - 查看文件权限发现该文件所有者、所有者组、其他用户均有r权限 - 查看该日…

5个好用的AI写论文网站推荐

目录 1.AIQuora论文写作 2.passyyds 答辩PPT 3.AIPassgo论文降AIGC 4.文状元 5.passyyds论文写作 毕业论文是每个毕业生的痛&#xff0c;不管你是本科还是硕士要想顺利毕业你就不得不面对论文。然而&#xff0c;面对论文写作时常常感到无从下手&#xff1a;有时缺乏灵感&a…

ajax应用

在互联网的浩瀚海洋中&#xff0c;信息如同潮水般涌动。对于数据分析师、研究人员或是任何想要从网络上获取信息的人来说&#xff0c;掌握Ajax数据抓取技术无疑是一把开启宝藏的钥匙。Ajax&#xff08;Asynchronous JavaScript and XML&#xff09;不仅让网页交互变得更加流畅&…

【JavaEE进阶】——要想代码不写死,必须得有spring配置(properties和yml配置文件)

目录 本章目标&#xff1a; &#x1f6a9;配置文件 &#x1f6a9;SpringBoot配置文件 &#x1f388;配置⽂件的格式 &#x1f388; properties 配置⽂件说明 &#x1f4dd;properties语法格式 &#x1f4dd;读取配置文件 &#x1f4dd;properties 缺点分析 &#x1f3…

中国科技期刊卓越行动计划重点期刊

https://kyc.webs.nbpt.edu.cn/_upload/article/files/3e/82/8a3a267048079f3487aef8802af8/09b9fa10-af17-4c2c-89ab-aa0facfb107c.pdf

记录下面试(240522)

试问面试有多难&#xff0c;看看今天的面试题。 1、kong都用了哪些插件&#xff1f; 2、zk底层一致性协议是什么&#xff0c;源码级别的理解。 3、mysql mvcc 引擎&#xff0c;索引都怎么实现的。 4、es底层全文索引如何实现的。 4、业务整体架构是什么样的&#xff0c; 5、如何…

操作MySQL数据库

【一】针对库的增删查改&#xff08;文件夹&#xff09; 【1】创建数据库 &#xff08;1&#xff09;语法 创建一个存储数据表的文件夹。 注意&#xff1a;mysql中的编码字符集中utf-8&#xff0c;要换成utf8mb4。SQL语句中的中括号部分表示可选。 create database [if no…

修改uniapp内置组件checkbox的样式

默认情况下 <view style"margin-bottom: 20rpx;"><label style"display: flex;align-items: center;width: fit-content;" click"handleCheck(cxm4s)"><checkbox /><text>车信盟出险4S维保</text></label>…

Java实验08

实验一 demo.java package q8.demo02;public class demo{public static void main(String[] args) {WindowMenu win new WindowMenu("Hello World",20,30,600,290);} }WindowMenu.java package q8.demo02; import javax.swing.*;public class WindowMenu extends…

数据结构初始化链表

链表是一种常见的数据结构&#xff0c;可以用于存储一系列的元素&#xff0c;每个元素包含一个值和一个指向下一个元素的指针。 链表的初始化可以通过创建一个头结点来实现&#xff0c;头结点不存储任何元素&#xff0c;只作为链表的起始点。在初始化时&#xff0c;可以将头结…

3d火灾救援模拟仿真培训软件复用性强

消防VR安全逃生体验系统是深圳VR公司华锐视点引入了前沿的VR虚拟现实、web3d开发和多媒体交互技术&#xff0c;为用户打造了一个逼真的火灾现场应急逃生模拟演练环境。 相比传统的消防逃生模拟演练&#xff0c;消防VR安全逃生体验系统包含知识讲解和模拟实训演练&#xff0c;体…

el-table树型数据lazy加载实现首行展开

el-table树型数据lazy加载实现首行展开 遇到一个小需求&#xff0c;一个树型数据的el-table&#xff0c;并且使用lazy加载&#xff0c;需要实现首行展开。 实现 思路&#xff1a;使用 expand-row-keys 或者 toggleRowExpansion API展开&#xff0c;但是发现这些API并不会触发…

【百度智能体】5分钟打造一款为你写情书的智能体

目录 前言一、智能体特点二、应用场景三、打造一款写情书智能体1、名称2、简介3、填写人物设定&#xff1a;4、开场白5、引导示例6、预览 最后 前言 智能体作为人工智能领域的一个重要概念&#xff0c;是指能够自主感知环境、做出决策并执行行动的系统。它具备自主性、交互性、…

程序员经常去的网站

程序员们经常去的网站确实非常多样化&#xff0c;这些网站不仅提供了丰富的技术资源和学习材料&#xff0c;还是他们交流经验和分享知识的重要平台。以下是一些程序员经常访问的网站&#xff0c;我将按照不同的类别进行归纳和分点表示&#xff1a; 一、代码托管与协作 GitHub&a…

单元测试(了解)

单元测试定义 针对最小功能单元&#xff08;方法&#xff09;&#xff0c;编写测试代码对其进行正确性测试 之前如何进行单元测试&#xff1f;有什么问题&#xff1f; main中编写测试代码&#xff0c;调用方法测试 问题&#xff1a; 无法自动化测试 每个方法的测试可能不是…

EPSON爱普生RTC RA8900CE/RA8000CE+松下Panasonic电池组合

RTC是一种实时时钟&#xff0c;用于记录和跟踪时间&#xff0c;具有独立供电和时钟功能。在某些应用场景中&#xff0c;为了保证RTC在断电或者其他异常情况下依然能够正常工作&#xff0c;需要备份电池方案来提供稳定的供电。本文将介绍EPSON爱普生RTC RA8900CE/RA8000CE松下Pa…

【吊打面试官系列】Java高并发篇 - AQS 支持几种同步方式 ?

大家好&#xff0c;我是锋哥。今天分享关于 【AQS 支持几种同步方式 &#xff1f;】面试题&#xff0c;希望对大家有帮助&#xff1b; AQS 支持几种同步方式 &#xff1f; 1、独占式 2、共享式 这样方便使用者实现不同类型的同步组件&#xff0c;独占式如 ReentrantLock&…

VUE3.0学习-模版语法

安装Node.js的过程相对直接&#xff0c;以下是详细的步骤指导&#xff0c;适用于大多数操作系统&#xff1a; ### 1. 访问Node.js官方网站 首先&#xff0c;打开浏览器&#xff0c;访问 [Node.js 官方网站](https://nodejs.org/)。 ### 2. 选择合适的版本下载 在Node.js官网上…

OpenHarmony 实战开发——ArkUI中的线程和看门狗机制

一、前言 本文主要分析ArkUI中涉及的线程和看门狗机制。 二、ArkUI中的线程 应用Ability首次创建界面的流程大致如下&#xff1a; 说明&#xff1a; • AceContainer是一个容器类&#xff0c;由前端、任务执行器、资源管理器、渲染管线、视图等聚合而成&#xff0c;提供了生…