C++系列十四:结构体

news/2025/2/21 4:39:22/

C++中的结构体

一、结构体的定义

在C++中,结构体是一种自定义的数据类型,它允许我们将不同类型的数据组合在一起。结构体可以包含任意类型的数据,包括基本数据类型、指针、数组、其他结构体等。

定义结构体的语法如下:

struct 结构体名 {数据类型1 成员变量1;数据类型2 成员变量2;...
};

二、结构体的使用

定义了结构体之后,我们就可以声明结构体类型的变量,并为其赋值。下面是一个简单的示例:

#include <iostream>
using namespace std;struct Person {string name;int age;
};int main() {Person p1; // 声明一个Person类型的变量p1p1.name = "Alice"; // 为p1的name成员变量赋值p1.age = 25; // 为p1的age成员变量赋值cout << "Name: " << p1.name << ", Age: " << p1.age << endl; // 输出p1的值return 0;
}

在上面的示例中,我们定义了一个名为Person的结构体,它包含两个成员变量:name和age。在main函数中,我们声明了一个Person类型的变量p1,并为其成员变量赋值。最后,我们输出了p1的值。

除了定义结构体类型之外,我们还可以使用结构体类型来定义数组、指针等。下面是一个示例:

#include <iostream>
using namespace std;struct Person {string name;int age;
};int main() {Person p1{"Bob", 30}; // 声明并初始化一个Person类型的变量p1Person p2 = {"Charlie", 35}; // 声明一个Person类型的变量p2,并使用初始化列表进行初始化cout << "Name: " << p1.name << ", Age: " << p1.age << endl; // 输出p1的值cout << "Name: " << p2.name << ", Age: " << p2.age << endl; // 输出p2的值return 0;
}

在上述示例中,我们使用结构体类型定义了两个变量p1和p2,并分别进行了初始化。初始化时,我们使用了初始化列表语法,将成员变量的值直接赋给变量。

除了定义变量之外,我们还可以使用结构体类型来定义函数。下面是一个示例:

#include <iostream>
using namespace std;struct Person {string name;int age;
};void printPerson(Person p) {cout << "Name: " << p.name << ", Age: " << p.age << endl;
}int main() {Person p1{"Alice", 20};printPerson(p1); // 输出p1的值return 0;
}

在上面的示例中,我们定义了一个名为printPerson的函数,它接受一个Person类型的参数,并输出该参数的值。在main函数中,我们声明并初始化了一个Person类型的变量p1,然后将其作为参数传递给printPerson函数。

总结:结构体是一种非常有用的自定义数据类型,它可以让我们将不同类型的数据组合在一起,方便管理和使用。通过定义结构体类型、声明变量、初始化变量以及定义函数等方式,我们可以灵活地使用结构体来满足不同的需求。


http://www.ppmy.cn/news/1295255.html

相关文章

一、Qt介绍

一、Qt介绍 1、介绍 Qt是一套程序开发库&#xff0c;但是与MFC&#xff08;依赖于Windows API&#xff09;不同&#xff0c;Qt是跨平台开发库。 Qt获取&#xff1a;[Qt下载地址](https://download.qt.io/archive/qt/)2、Qt安装 QtMinGWSourcesQt ChartsQt Data Visualizatio…

伦茨科技Apple Find My认证芯片-ST17H6x芯片

深圳市伦茨科技有限公司&#xff08;以下简称“伦茨科技”&#xff09;发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家&#xff0c;该平台提供可通过Apple Find My认证的Apple查找&#xff08;Find My&#xff09;功能集成解决方案。…

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分&#xff0c;主要用于管理和限制对系统资源&#xff08;如数据、应用程序等&#xff09;的访问。授权控制用户可访问和操作的系统资源&#xff0c;而访问控制技术则负责在授权的基础上&#xff0c;确保只有经过授权的用户才能访问…

Redis底层原理篇(SDS与IntSet)

1.SDS动态字符串 2.intSet contents[]整数数组存的是地址 具备有序的特性 有自动扩容机制&#xff0c;自动扩容时倒序赋值

K9、sc和希喂三款猫主食冻干哪款更能满足布偶猫的需求?

虽然布偶猫是典型的食肉动物&#xff0c;但由于肠胃脆弱&#xff0c;在饮食上需要特别注意。很多铲屎官会选择主食冻干来喂养猫咪&#xff0c;这种食物既符合猫咪的天然饮食结构&#xff0c;又采用高蛋白的新鲜生肉作为主要原料。让猫咪在享受美食的同时提高抵抗力。不用担心因…

跑通大模型领域的 hello world

跑通书生浦语大模型的 3 个趣味 demo&#xff08;InternLM-Chat-7B 智能对话、Lagent工具调用解简单数学题、浦语灵笔多模态图文创作和理解&#xff09;视频和文档。 1、两个框架 InternLM 是⼀个开源的轻量级训练框架&#xff0c;旨在⽀持⼤模型训练⽽⽆需⼤量的依赖。 Lage…

实习遇到问题备忘录

1.Hutool工具包的DB Hutool学习 —— 数据库 - db &#xff08;一&#xff09;Db简单操作 - 简书 (jianshu.com) 2.Consumer函数接口 Java 常用函数式接口之Consumer接口 - LeeHua - 博客园 (cnblogs.com) 3.sql高级用法merge into SQL高级知识——MERGE INTO - 知乎 (zhi…

在Raspberry Pi Zero W中配置TFT LCD Framebuffer驱动

TFT LCD Framebuffer驱动配置 文章目录 TFT LCD Framebuffer驱动配置1、硬件准备2、软件配置2.1 启用SPI驱动2.2 TFT LCD设备驱动树配置 本文将以ILI9341 LCD为例&#xff0c;将详细介绍如何配置TFT LCD的Framebuffer驱动。 1、硬件准备 Raspberry Pi Zero W开发板一个&#x…