IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 自定义数据类型:数据结构 -> 正文阅读

[数据结构与算法]自定义数据类型:数据结构

任何用结构做到的事情,都可以用类做到。

数据结构struct

定义结构

[template-spec] struct [ms-decl-spec] [tag [: base-list ]]
{
   member-list
} [declarators];
[struct] tag declarators;

template-spec

可选模板规范。 见?模板规范

structstruct 关键字。
ms-decl-spec

可选存储类规范。见?__declspec?关键字。

tag

为结构提供的类型名称。 标记将变成结构范围内的保留字。 标记是可选项。 如果省略,则定义匿名结构。 有关详细信息,请参阅?匿名类类型

base-list

?此结构将从中派生其成员的类或结构的可选列表。 有关详细信息?,请参阅基类?。 每个基类或结构名称都可以在访问说明符前面 (公共、?专用、?受保护的) 和?虚拟?关键字。 有关详细信息,请参阅?控制对类成员的访问?中的成员访问表。

member-list

结构成员列表。 有关详细信息,请参阅?类成员概述?。 此处的唯一区别是?struct?使用代替?class

declarators

?指定结构名称的声明符列表。 声明符列表声明了一个或多个结构类型实例。 如果结构的所有数据成员为?public,则声明符可能包含初始值设定项列表。 初始值设定项列表在结构中很常见,因为数据成员默认是?public?。 有关详细信息?,请参阅声明器概述?。

struct PERSON     // 声明 PERSON 结构类型
{   
    int age;       // 声明成员类型
    long ss;
    float weight;
    char name[25];
} family_member;   //定义 PERSON 类型的对象

int main()
{
    struct PERSON sister;   // C风格结构声明
    PERSON brother;         // C++风格结构声明
     sister.age = 13;       // 为成员赋值
}

初始化结构

  • 将数据存入结构成员的方法,是在声明语句中为结构成员定义初始值。初始值在初始化列表内,逗号分开,与数组成员定义初始值的方式相同。

{}内的变量要注意顺序。

struct PERSON     // 声明 PERSON 结构类型
{
    int age;       // 声明成员类型
    float weight;
    char name[25];
} family_member;   //定义 PERSON 类型的对象

int main()
{
    PERSON brother{ 18,50.0 ,"jeff" };   // C++风格结构声明    
}

访问结构的成员

int main()
{
    PERSON brother{ 50.0,18 ,"jeff" };   // C++风格结构声明  
    std::cout << brother.age;
}

RECT结构

windows.h的windef.h头文件中有一个预定义的RECT结构。

typedef struct tagRECT {
  LONG left;
  LONG top;
  LONG right;
  LONG bottom;
} RECT, *PRECT, *NPRECT, *LPRECT;

MFC中也定义了CRect类。

使用指针处理结构

struct PERSON     // 声明 PERSON 结构类型
{
    int age;       // 声明成员类型
    float weight;
    char name[25];
} family_member;   //定义 PERSON 类型的对象

int main()
{
    PERSON brother{ 50.0,18 ,"jeff" };   // C++风格结构声明    
    PERSON* ptrPerson{};
    ptrPerson = &brother;

    std::cout << (*ptrPerson).age<<std::endl;
    std::cout << ptrPerson->age;
}
struct ListElement
{
    RECT aRect;
    ListElement* pNext;
};

?通过指针访问结构成员

括号用来解除对指针的引用,成员访问操作符.的优先级高级解除引用操作符*。

(*pNext).top += 10;

间接成员选择操作符(间接成员访问操作符)

间接成员选择操作符->专用于通过指针访问结构(或类)的成员。

pNext->top+=10;

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-27 17:24:44  更:2022-05-27 17:25:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/30 2:26:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码