入门C语言只需一个星期(星期六)

news2024/12/28 23:50:01

点击上方"蓝字"关注我们

01、创建结构体

struct MyStructure {  // 结构声明  int myNum;     // 成员(int 变量)  char myLetter; // 成员(char 变量)}; // 用分号结束结构创建一个名为 s1 的结构变量struct myStructure {  int myNum;  char myLetter;};int main() {  struct myStructure s1;  return 0;}

02、结构体中的字符串

struct myStructure {  int myNum;  char myLetter;  char myString[30]; // String};int main() {  struct myStructure s1;  strcpy(s1.myString, "Some text");  // 打印值  printf("我字符串: %s", s1.myString);  return 0;}使用 strcpy 函数为字符串赋值

03、访问结构体成员

// 创建一个名为 myStructure 的结构struct myStructure {  int myNum;  char myLetter;};int main() {  // 创建一个名为 s1 的 myStructure 结构变量  struct myStructure s1;  // 为 s1 的成员赋值  s1.myNum = 13;  s1.myLetter = 'B';  // 创建一个名为 s2 的 myStructure 结构变量  // 并为其赋值  struct myStructure s2 = {13, 'B'};  // 打印值  printf("My number: %d\n", s1.myNum);  printf("My letter: %c\n", s1.myLetter);  return 0;}创建不同的结构变量struct myStructure s1;struct myStructure s2;// 为不同的结构变量赋值s1.myNum = 13;s1.myLetter = 'B';s2.myNum = 20;s2.myLetter = 'C';

04、复制结构体

struct myStructure s1 = {  13, 'B', "Some text"};struct myStructure s2;s2 = s1;示例中,将 s1 的值复制到 s2

05、修改结构体值

// 创建一个结构变量并为其赋值struct myStructure s1 = {  13, 'B'};// 修改值s1.myNum = 30;s1.myLetter = 'C';// 打印值printf("%d %c %s",    s1.myNum,    s1.myLetter);

总结

上节回顾

入门C语言只需一个星期(星期五)

C语言中的结构体(struct)是一种用户自定义的数据类型,可以用来组织一组相关的数据成员。结构体的常见用法包括:

1. 封装数据:结构体可以用来封装相关联的数据成员,使得数据的表示更加清晰和易于理解。例如,可以定义一个学生结构体,包含学号、姓名、年龄等成员。

2. 实现数据共享:当多个函数或模块需要访问相同的数据时,可以使用结构体来实现数据共享。这样可以避免数据重复定义,提高代码的可维护性。

3. 传递数据:结构体可以作为函数参数或返回值,实现数据的传递。例如,可以将学生的信息作为参数传递给一个函数,或者在函数中创建一个新的学生结构体并返回。

4. 数组和链表:结构体可以用于构建数组和链表等数据结构。例如,可以定义一个节点结构体,包含数据和指向下一个节点的指针,然后使用这些节点来构建链表。

5. 面向对象编程:虽然C语言不是面向对象的语言,但结构体可以用来模拟面向对象编程中的类和对象的概念。例如,可以定义一个动物结构体,包含动物的属性和方法,然后使用不同的动物结构体实例来表示不同的动物。

结构体的好处主要有以下几点:

1. 封装性:结构体可以将一组相关的数据成员封装在一起,对外提供统一的接口,隐藏内部实现细节。这有助于提高代码的可读性和可维护性。

2. 复用性:结构体可以包含多个数据成员,这些数据成员可以是不同类型的数据。通过定义不同的结构体类型,可以实现代码的复用,减少代码量。

3. 灵活性:结构体可以包含任意数量的数据成员,成员的类型也可以不同。这使得结构体具有很高的灵活性,可以适应各种不同的应用场景。

4. 数据共享:当多个函数或模块需要访问相同的数据时,可以使用结构体来实现数据共享。这样可以避免数据重复定义,提高代码的可维护性。

5. 数组和链表:结构体可以用于构建数组和链表等数据结构。例如,可以定义一个节点结构体,包含数据和指向下一个节点的指针,然后使用这些节点来构建链表。

6. 面向对象编程:虽然C语言不是面向对象的语言,但结构体可以用来模拟面向对象编程中的类和对象的概念。例如,可以定义一个动物结构体,包含动物的属性和方法,然后使用不同的动物结构体实例来表示不同的动物。

故我在

点击下方卡片 关注我

↓↓↓

Qt历险记

一名技术分享师,分享方向:->Qt(C/C++、linux、STM32、MySql/Sqlite3、TCP/UDP),设计方面->Ai、PS、visio、AD、Protues。

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

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

相关文章

# Redis 入门到精通(九)-- 主从复制(1)

Redis 入门到精通(九)-- 主从复制(1) 一、redis 主从复制 – 主从复制简介 1、互联网“三高”架构 高并发高性能高可用 2、你的“Redis”是否高可用? 1)单机 redis 的风险与问题 问题1.机器故障  现…

kafka服务介绍

kafka 安装使用管理 Kafka Apache Kafka 是一个开源的分布式事件流平台,主要用于实时数据传输和流处理。它最初由 LinkedIn 开发,并在 2011 年成为 Apache 基金会的顶级项目。Kafka 设计的目标是处理大规模的数据流,同时提供高吞吐量、低延迟…

C语言 通讯录管理 完整代码

这份代码,是我从网上找的。目前是能运行。我正在读。有些不懂的地方,等下再记录下来。 有些地方的命名,还需要重新写一下。 比如: PersonInfo* info &address_book->all_address[address_book->size]; 应该改为: Perso…

C#实现数据采集系统-实现功能介绍

系统介绍 我们这里主要使用C#( .Net 6)来实现一个数据采集系统,从0到1搭建数据采集系统,从系统分析,功能拆解,到一一实现 数据采集 数据采集是企业信息化和数字化转型过程中的关键环节,它涉及到从生产设备、传感器…

Microsoft Visual C++ 2010 Express 使用

Microsoft Visual C 2010 Express 使用 Microsoft Visual C 2010 Express(简称VC 2010 Express)是一款免费的集成开发环境(IDE),专为C和C语言的开发者设计。 安装 下载|本站链接【VC2010简体中文版】的安装包并解压…

2024年新手卖家该如何做好亚马逊运营?

随着电子商务的蓬勃发展,越来越多的新手卖家选择在亚马逊这一国际电商巨头平台上开展业务。然而,想要在竞争激烈的市场中脱颖而出,新手卖家需要精心规划并执行有效的运营策略。以下是为2024年新手卖家提供的关于如何做好亚马逊运营的一些建议…

C#学习-刘铁猛

文章目录 1.委托委托的具体使用-魔板方法回调方法【好莱坞方法】:通过委托类型的参数,传入主调方法的被调用方法,主调方法可以根据自己的逻辑决定调用这个方法还是不调用这个方法。【演员只用接听电话,如果通过,导演会…

刷题笔记 739. 每日温度 (单调栈),215. 数组中的第K个最大元素(堆),347.前 K 个高频元素

739. 每日温度 (单调栈). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/daily-temperatures/description/?envTypestudy-plan-v2&envI…

Fast Planner规划算法(一)—— Fast Planner前端

本系列文章用于回顾学习记录Fast-Planner规划算法的相关内容,【本系列博客写于2023年9月,共包含四篇文章,现在进行补发第一篇,其余几篇文章将在近期补发】 一、Fast Planner前端 Fast Planner的轨迹规划部分一共分为三个模块&…

Haproxy服务

目录 一.haproxy介绍 1.主要特点和功能 2.haproxy 调度算法 3.haproxy 与nginx 和lvs的区别 二.安装 haproxy 服务 1. yum安装 2.第三方rpm 安装 3.编译安装haproxy 三.配置文件详解 1.官方地址配置文件官方帮助文档 2.HAProxy 的配置文件haproxy.cfg由两大部分组成&…

React+TypeScript 组件库开发全攻略:集成Storybook可视化与Jest测试,一键发布至npm

平时我除了业务需求,偶尔会投入到UI组件的开发中,大多数时候只会负责自己业务场景相关或者一小部分公共组件,极少有从创建项目、集成可视化、测试到发布的整个过程的操作,这篇文章就是记录组件开发全流程,UI组件在此仅…

RabbitMQ学习实践二:MQ的实现

文章是本人在学习springboot实现消息队列功能时所经历的过程的记录,仅供参考,如有侵权请随时指出。 参考文章地址: RabbitMQ安装与入门_rabbitmq win11配置-CSDN博客 RabbitMQ入门到实战一篇文章就够了-CSDN博客 RabbitMQ系列&#xff08…

AI跟踪报道第48期-新加坡内哥谈技术-本周AI新闻:Open AI 和 Mistral的小型模型

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

华为路由器SSH登录实验

概念 SSH全称安全外壳(Secure Shell)协议,这个协议的目的就是为了取代缺乏机密性保障的远程管理协议,SSH基于TCP协议的加密通道,让客户端使用服务器的RSA公钥来验证SSHv2服务器的身份。 创建密钥对 在充当SSH服务器的…

UE4-获得角色控制权的两种方法

方法一: 方法二: 注意此方法不能有多个玩家出生点,如果有多个玩家出生点,会随机的选择一个玩家出生点进行生成。

C++的map和set介绍

系列文章目录 二叉树搜索树 map和set习题 文章目录 系列文章目录前言一、关联式容器键值对二、树形结构的关联式容器2.1 set2.1.1 set的介绍2.1.3 set的使用删除节点find的不同效率count举例lower_bound 和 upper_bound 2.2 multiset2.2.1 区别:find查找erase删除e…

Deepin系统,中盛科技温湿度模块读温度纯c程序(备份)

#include <stdio.h> #include <fcntl.h> #include <unistd.h> #include <termios.h>int main() {int fd;struct termios options;// 打开串口设备fd open("/dev/ttyMP0", O_RDWR | O_NOCTTY|O_NDELAY); //O_NDELAY:打开设备不阻塞//O_NOCTT…

http请求网址或网页的全流程

客户端通过浏览器请求网址或网页资源的步骤如下&#xff1a; http请求网址或网页的全流程 1.首先&#xff0c;浏览器做的第一步就是解析 URL 得到里面的参数2.浏览器封装 HTTP 请求报文3.DNS 域名解析获取 IP 地址4. 建立 TCP 连接5.浏览器发送请求6.负责传输的 IP 协议7.使用 …

基于Llama Index构建RAG应用(Datawhale AI 夏令营)

前言 Hello&#xff0c;大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者&#xff0c;本文参与活动是2024 DataWhale AI夏令营&#xff1b;&#x1f632; 在本文中作者将通过&#xff1a; Gradio、Streamlit和LlamaIndex介绍 LlamaIndex 构…

【初阶数据结构】5.栈和队列

文章目录 1.栈1.1 概念与结构1.2 栈的实现2.队列2.1 概念与结构2.2 队列的实现3.栈和队列算法题3.1 有效的括号3.2 用队列实现栈3.3 用栈实现队列3.4 设计循环队列 1.栈 1.1 概念与结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操…