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++两个cpp文件间如何进行各自函数的调用方式

    当我们在一个项目中有多个 C++ 源文件时,我们需要知道如何在不同的文件中调用其它文件的函数。 下面是两个cpp文件间如何进行各自函数的调用方式的攻略: 声明和定义 要在一个文件中使用另一个文件中定义的函数,我们必须将该函数的定义标记为 “extern”,并在需要使用它的文件中进行声明。 例如,如果我们有两个文件,一个叫做 main.cpp 和另一个叫做 h…

    C 2023年5月23日
    00
  • windows下如何安装OpenCL

    安装OpenCL可以使你的电脑更好地支持并行计算、图形处理、机器学习等任务。以下是Windows下安装OpenCL的完整攻略。 一、检查显卡是否支持OpenCL 在安装OpenCL之前,需要确保你的显卡支持OpenCL。可以在显卡厂商的官网上查找相关信息,或者使用GPU-Z、Speccy等工具检查显卡信息。 二、下载OpenCL驱动程序 下载对应的OpenC…

    C 2023年5月23日
    00
  • 初学C语言基本运算和表达式

    初学C语言基本运算和表达式攻略 C语言是一门计算机编程语言,基本运算和表达式是C语言编程中的基础知识点。在学习这一部分内容时,需要掌握以下知识点: 基本运算符 表达式的运算顺序 数据类型的转换 下面我们来一步步了解这些知识点。 基本运算符 在C语言中,基本运算符包括算术运算符、关系运算符、逻辑运算符和位运算符。 算术运算符 算术运算符包括加(+)、减(-)、…

    C 2023年5月23日
    00
  • C 标准库 ctype.h

    ctype.h 是 C 标准库中的一个头文件,提供了一些用于字符处理的函数。这里详细讲解一下它的使用方法。 ctype.h 头文件的引入 为了使用 ctype.h 头文件,需要在程序中包含它。可以使用以下代码引入: #include <ctype.h> 一些常用的 ctype.h 函数 isalnum() 此函数用于检查字符是否是字母或数字。如果…

    C 2023年5月10日
    00
  • win10系统电脑蓝屏错误代码0xc000000d怎么解决 开机0xc000000d修复引导

    解决win10系统电脑蓝屏错误代码0xc000000d的攻略 前言 当我们在使用电脑时,遇到蓝屏错误,无疑是一件非常烦心的事情。而0xc000000d错误代码则是蓝屏错误中比较常见的一种。那么如何解决这个问题呢?下面是详细的攻略。 攻略步骤 步骤一:尝试修复引导文件 0xc000000d错误代码在许多情况下出现的原因是引导文件损坏。因此,我们可以尝试通过修复…

    C 2023年5月23日
    00
  • C++11中bind绑定器和function函数对象介绍

    C++11中bind绑定器和function函数对象介绍 C++11引入了许多新特性,其中包括bind绑定器和function函数对象。这些特性使得C++在编写现代化的代码方面变得更加简单和灵活,为程序员提供了更多的工具来实现代码复用和组合。 bind绑定器 bind绑定器是一个函数模板,它可以用来将一个函数的参数绑定到特定的值或另一个函数。这使得我们可以轻…

    C 2023年5月22日
    00
  • C语言实现学生消费管理系统

    【C语言实现学生消费管理系统攻略】 一、需求分析 对于学生来说,管理自己的消费是很有必要的。因此我们需要实现一款学生消费管理系统,具备以下功能: 学生信息管理:包括姓名、学号、性别等信息。 消费信息管理:包括日期、消费品种(如食物、书籍等)、消费金额等信息。 消费查询功能:能够查询某一段时间内的消费情况。 统计分析功能:能够统计学生的消费情况,如消费总额、平…

    C 2023年5月23日
    00
  • C++实现企业职工工资管理系统

    C++实现企业职工工资管理系统 思路概述 企业职工工资管理系统是一个典型的信息管理系统,它主要是通过管理系统对组织内职工的工资情况进行管理。本文将通过C++语言实现该系统,包括职工信息管理和工资管理两个功能模块。 在职工信息管理模块中,我们将定义一个员工类来保存每个员工的基本信息(工号、姓名、性别、年龄)并提供添加、删除、修改、查询和显示所有员工的方法。在工…

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