C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记

C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记

1. 复合类型简介

在C++中有许多复合类型,如数组、结构体、共用体和指针等,它们能够将多个基本类型变量组合成更加复杂的数据结构。在使用复合类型时,需要注意其内存结构和使用方法,以充分发挥其特性。

2. 数组

数组是一种复合类型,可以存储多个同一类型的数据,通过下标访问数组元素。数组的定义可以使用如下语句:

type name[size];

其中,type为数组元素的类型,name为数组的名称,size为数组的长度。数组下标从0开始,最大下标为size-1。

示例1:定义一个长度为5的整型数组并初始化

int numbers[5] = {0, 1, 2, 3, 4};

示例2:使用循环遍历数组

for (int i = 0; i < 5; i++) {
    cout << numbers[i] << " ";
}

3. 结构体

结构体是一种用户自定义的数据类型,可以将多个不同类型的变量组合成一个整体。结构体的定义可以使用如下语句:

struct name {
    type1 member1;
    type2 member2;
    ...
};

其中,name为结构体的名称,type1为结构体成员1的类型,member1为结构体成员1的名称。结构体的成员可以直接通过结构体名称加点的形式进行访问。

示例3:定义一个学生结构体

struct student {
    string name;
    int age;
    double score;
};

示例4:使用学生结构体对象

student s = {"Tom", 18, 90.5};
cout << s.name << " " << s.age << " " << s.score << endl;

4. 共用体

共用体也是一种用户自定义的数据类型,与结构体不同的是,共用体中所有成员公用同一块内存空间。共用体的定义可以使用如下语句:

union name {
    type member1;
    type member2;
    ...
};

其中,name为共用体的名称,type为共用体成员的类型。共用体的成员可以直接通过共用体名称加点的形式进行访问。

示例5:定义一个身份证共用体

union id {
    long long number;
    char code[18];
};

示例6:使用身份证共用体对象

id myID;
myID.number = 1234567890;
cout << myID.number << endl;       // 输出 1234567890
strcpy(myID.code, "110101199901010101");
cout << myID.code << endl;         // 输出 110101199901010101

5. 指针

指针是一种特殊的变量,存储的是内存地址。指针变量需要先定义,然后再初始化,指向某个内存地址。通过指针可以实现对变量的间接访问和修改。指针的定义可以使用如下语句:

type *name;

其中,type为指针指向的类型,name为指针变量名称。

示例7:定义一个整型指针变量

int *ptr;

示例8:使用指针访问变量

int num = 10;
int *ptr = &num;
cout << *ptr << endl;       // 输出 10

6. 总结

复合类型是C++中非常重要的概念,掌握好复合类型的使用方法,能够提高程序的效率和灵活性。在使用复合类型时,需要注意其内存结构以及正确的使用方法,以保证程序的正确性和稳定性。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ Primer Plus 第四章之C++ Primer Plus复合类型学习笔记 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • C语言快速实现扫雷小游戏

    C语言快速实现扫雷小游戏攻略 介绍 扫雷是一款经典的小游戏,以其简单的规则和极高的可玩性深受玩家喜爱。在此,将介绍如何使用C语言快速实现扫雷小游戏。 实现思路 扫雷游戏的主要逻辑是实现格子的打开、插旗和计算数字等操作。因此需要设计一个二维数组来表示游戏界面,并将每个格子分成以下几种类型: 雷格:表示该格子下面是一颗地雷; 数字格:表示该格子周围有多少颗地雷;…

    C 2023年5月23日
    00
  • 联想E450C怎么添加内存条?联想E450C拆机过程

    添加内存条的过程相对简单,但是还是需要谨慎操作,下面为您介绍联想E450C添加内存的完整攻略,包括拆机过程和具体步骤。 确认内存条类型 首先需要明确自己所需要购买的内存条的类型以及最大支持容量。联想E450C笔记本内存插槽总数为两个,最大支持容量为16GB。 拆卸电源 在添加内存条之前,需要先关闭电源并且断开电源适配器。然后,反转笔记本电脑,拆卸电源,以便后…

    C 2023年5月23日
    00
  • C++实现大数相乘算法

    C++ 实现大数相乘算法 当我们需要计算两个超出计算机整数范围的大数相乘时,传统的计算方法已经无法满足需求,因此需要寻找一种适合大数相乘的算法。本文将介绍一种针对大数相乘的算法 – Karatsuba乘法,并使用C++语言进行实现。 Karatsuba 乘法的原理 Karatsuba 乘法的基本思想是将两个大数a和b分别划分为高位和低位,进而利用递归的方法将…

    C 2023年5月22日
    00
  • 详解JS数值Number类型

    详解JS数值Number类型 JS数值类型Number代表数字(整数、小数等),Number类型在JS中是比较常用的数据类型之一。本文将详细讲解Number类型的一些基本特性、注意点和应用技巧。 Number类型的基本特性 Number类型有以下一些基本特性: JS的Number类型是浮点数类型(64位),即 IEEE-754 标准的双精度浮点数。但是,在大…

    C 2023年5月22日
    00
  • c/c++快乐算法第三天

    c/c++感受算法快乐(3) 开始时间2023-04-16 22:21:10 结束时间2023-04-17 00:09:34 前言:很好,这周就要结束了,大家都回学校了么,嘻嘻。回顾一下昨天的算法题,1.4抓交通肇事犯运用枚举模拟,1.5兔子产子问题运用迭代循环,1.6牛顿迭代法求方程根迭代循环,1.7最佳存款问题迭代循环。什么是迭代?对计算机特定程序中需要…

    C语言 2023年4月17日
    00
  • C++实现简单迷宫游戏

    C++实现简单迷宫游戏攻略 介绍 迷宫游戏是一种很有趣的益智游戏,在这个游戏中,玩家需要解决迷宫中的难题,找到通往出口的路线。本攻略将提供一个简单的迷宫游戏实现过程,使用 C++ 编程语言实现。 在这个项目中,我们将学习如何使用类、条件语句、循环和数组等 C++ 编程语言的基本语法和概念。在游戏中,我们将使用控制台窗口来创建一个命令行界面,玩家可以通过键盘操…

    C 2023年5月23日
    00
  • c++代码各种注释示例详解

    C++代码注释详解 C++代码注释是一种为程序添加额外说明、解释和提示的方式,它有助于程序的可读性和可维护性。 本文将详细讲解C++代码各种注释示例及说明。 单行注释 单行注释以//开始,直到该行结束,可用于简单的注释或激活/屏蔽代码。 示例: int a = 5; // 定义变量a,赋值为5 // int b = 10; // 激活该行会定义变量b,赋值为…

    C 2023年5月23日
    00
  • exce表格中l怎么计算固定资产折旧计算表?

    计算固定资产折旧是每个企业都必须要做的一个重要的财务工作。在Excel表格中,我们可以通过几个步骤来计算固定资产的折旧,具体的攻略如下: 1. 准备固定资产信息 首先,我们需要准备好固定资产信息,包括固定资产的名称、购置日期、购置金额、预计使用年限、残值等信息。将这些信息填写到Excel的表格中。 2. 计算每年的折旧额 根据固定资产的预计使用年限和残值率,…

    C 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部