0

0

C++结构体基本教程_C++ struct属性与使用方式

冰川箭仙

冰川箭仙

发布时间:2025-12-18 09:05:20

|

980人浏览过

|

来源于php中文网

原创

struct 是 C++ 中用于轻量级数据封装的类型,默认成员 public,支持嵌套和列表初始化,定义后可像基本类型一样声明、赋值和访问成员。

c++结构体基本教程_c++ struct属性与使用方式

结构体(struct)是 C++ 中组织相关数据的最基本方式,它允许你把多个不同类型的数据打包成一个整体,方便管理和使用。 它不是类,但语法上很像——默认成员是 public 的,不带函数也能用,适合轻量级数据封装。

struct 怎么定义?

struct 关键字 + 名字 + 花括号 定义,里面写成员变量(可以是任意类型,包括其他 struct):

struct Person {
    std::string name;
    int age;
    double height;
};
  • 定义后,Person 就成了一个新类型,和 intdouble 一样可用
  • 成员默认是 public,可以直接通过点号访问:Person p; p.age = 25;
  • 不支持直接在定义里初始化成员值(C++11 后可在声明时给默认值,如 int age = 0;

怎么创建和使用 struct 变量?

定义好 struct 类型后,就能像普通变量一样声明、赋值、传参:

Person a = {"Alice", 30, 165.5};        // C++11 起支持列表初始化
Person b;
b.name = "Bob";
b.age = 28;
b.height = 178.2;

std::cout << a.name << " is " << a.age << " years old.\n";
  • 支持直接初始化(花括号)、逐个赋值、拷贝构造(Person c = a;
  • 可以作为函数参数:按值传(拷贝整个结构体)、按引用传(void print(const Person& p) 更高效)
  • 可以作为返回值:Person getAdult() { return {"Tom", 45, 172.0}; }

struct 和 class 有啥区别?

最核心的区别只有 **默认访问权限**:

杰易CRM客户关系管理系统
杰易CRM客户关系管理系统

软件介绍 a.. 当今的市场压力迫使企业在提高产品质量和性能的同时,降低成本和缩短产品上市的时间。每个企业都在努力更新自己,包括其生产过程和产品,以满足这些需求。实现这些目标的三种方法是:业务处理再设计、新技术应用、与顾客形成战略联盟。 b.. 对所有的商业应用只有建立整体的IT体系结构,才能形成战略优势,才能确定企业的突破口。这种新的体系结构是以三层结构标准为基础的客户关系

下载

立即学习C++免费学习笔记(深入)”;

  • struct 成员和继承默认是 public
  • class 成员和继承默认是 private
  • 除此之外,两者功能完全一致:都能有成员函数、构造函数、运算符重载、模板、继承等
  • 习惯上,只存数据、无逻辑的用 struct;需要封装行为或隐藏实现的用 class

小技巧与注意事项

  • 定义时加 typedef 或用 using 简化(C++11 起推荐):using Point = struct { int x, y; };
  • 空 struct 大小为 1 字节(避免大小为 0),用于占位或模板特化
  • 结构体对齐会影响 sizeof 结果,编译器会自动填充字节保证内存对齐(如 int 通常按 4 字节对齐)
  • 如果要序列化或跨平台传输,注意字节序和对齐差异,别直接 memcpy 整个 struct

基本上就这些。struct 是 C++ 的基石之一,写得少但用得多——从函数返回多个值,到定义配置、网络包、图形顶点,都离不开它。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

186

2023.09.27

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1497

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

230

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

87

2025.10.17

c语言const用法
c语言const用法

const是关键字,可以用于声明常量、函数参数中的const修饰符、const修饰函数返回值、const修饰指针。详细介绍:1、声明常量,const关键字可用于声明常量,常量的值在程序运行期间不可修改,常量可以是基本数据类型,如整数、浮点数、字符等,也可是自定义的数据类型;2、函数参数中的const修饰符,const关键字可用于函数的参数中,表示该参数在函数内部不可修改等等。

527

2023.09.20

golang结构体相关大全
golang结构体相关大全

本专题整合了golang结构体相关大全,想了解更多内容,请阅读专题下面的文章。

220

2025.06.09

golang结构体方法
golang结构体方法

本专题整合了golang结构体相关内容,请阅读专题下面的文章了解更多。

190

2025.07.04

typedef和define区别
typedef和define区别

typedef和define区别在类型检查、作用范围、可读性、错误处理和内存占用等。本专题为大家提供typedef和define相关的文章、下载、课程内容,供大家免费下载体验。

108

2023.09.26

拼多多赚钱的5种方法 拼多多赚钱的5种方法
拼多多赚钱的5种方法 拼多多赚钱的5种方法

在拼多多上赚钱主要可以通过无货源模式一件代发、精细化运营特色店铺、参与官方高流量活动、利用拼团机制社交裂变,以及成为多多进宝推广员这5种方法实现。核心策略在于通过低成本、高效率的供应链管理与营销,利用平台社交电商红利实现盈利。

1

2026.01.26

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 7.5万人学习

C 教程
C 教程

共75课时 | 4.2万人学习

C++教程
C++教程

共115课时 | 13.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号