C++结构体用法实例分析

C++结构体用法实例分析

本文将详细介绍C++结构体的用法,并提供两个实例说明。

结构体

结构体是C++中一种用户自定义的数据类型,可以包含多个不同类型的数据成员。其定义方式如下:

struct <结构体名称> {
    <数据类型> <数据成员1>;
    <数据类型> <数据成员2>;
    ...
    <数据类型> <数据成员n>;
};

结构体的定义

例如,我们想要定义一个表示学生信息的结构体,包括学生的姓名、年龄和性别:

struct Student {
    string name;
    int age;
    char sex;
};

结构体的初始化

结构体可以使用两种方式进行初始化:

1. 直接初始化

使用直接初始化可以在定义时完成结构体成员的初始化,如下所示:

Student stu = {"Tom", 18, 'M'};

2. 聚合初始化

聚合初始化是C++11新增的功能,可以让我们使用更简洁的方式完成结构体成员的初始化,如下所示:

Student stu{"Tom", 18, 'M'};

结构体的访问

使用点操作符可以访问结构体的成员数据,如下所示:

cout << "Name: " << stu.name << endl;
cout << "Age: " << stu.age << endl;
cout << "Sex: " << stu.sex << endl;

示例1

我们现在有多个学生的成绩信息,每个学生包含学号、姓名、语文、数学和英语三科成绩。我们可以定义一个结构体来表示学生成绩,并使用数组来保存多个学生的成绩信息。

struct Score {
    string id;
    string name;
    float chinese;
    float math;
    float english;
};

int main() {
    Score scores[3] = {
        {"001", "Tom", 90, 94, 88},
        {"002", "Jerry", 88, 80, 92},
        {"003", "Mike", 86, 89, 91}
    };
    for (int i = 0; i < 3; i++) {
        cout << "ID: " << scores[i].id << endl;
        cout << "Name: " << scores[i].name << endl;
        cout << "Chinese: " << scores[i].chinese << endl;
        cout << "Math: " << scores[i].math << endl;
        cout << "English: " << scores[i].english << endl;
    }
    return 0;
}

示例2

现在我们想要实现一个能够记录车辆信息的程序,包括品牌、型号、颜色和价格。我们可以定义一个结构体来表示车辆信息,并使用vector来保存多个车辆的信息。

struct Car {
    string brand;
    string model;
    string color;
    float price;
};

int main() {
    vector<Car> cars;
    cars.push_back({"Porsche", "Cayenne", "White", 450000.0});
    cars.push_back({"Tesla", "Model S", "Red", 550000.0});
    cars.push_back({"Mercedes-Benz", "S-Class", "Black", 540000.0});
    for (auto car : cars) {
        cout << "Brand: " << car.brand << endl;
        cout << "Model: " << car.model << endl;
        cout << "Color: " << car.color << endl;
        cout << "Price: " << car.price << endl;
    }
    return 0;
}

以上是两个使用结构体的实例说明,希望可以帮助大家更好的理解结构体的用法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++结构体用法实例分析 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Android TextView实现多文本折叠、展开效果

    Android TextView实现多文本折叠、展开效果攻略 在Android开发中,我们经常需要在TextView中显示大段的文本内容。为了提高用户体验和节省屏幕空间,我们可以实现多文本折叠和展开效果。下面是一个完整的攻略,包含了两个示例说明。 示例1:使用ReadMoreTextView库实现多文本折叠、展开效果 首先,在项目的build.gradle文…

    other 2023年9月6日
    00
  • Python底层封装实现方法详解

    Python底层封装实现方法详解 Python是一种高级动态类型语言,其封装特征是其面向对象编程的一大特性。Python中的封装是通过各种机制来隐藏对象的实现细节,让外部使用者只能通过特定的接口来进行访问和修改。在本篇文章中,我们将介绍Python中封装的实现方法,包括类的访问权限修饰符、属性方法等。 访问权限修饰符 在Python中,我们可以使用以下访问权…

    other 2023年6月25日
    00
  • selinuxisdisabled怎么解决

    以下是“selinuxisdisabled怎么解决的完整攻略,过程中至少包含两条示例说明”。 selinuxisdisabled解决攻略 在Linux系统中,SELinux是一种安全增强功能,可以提高的安全性。但是,在某些情况下,我们可能需要禁用SELinux。如果在禁用SELinux后,执行sestatus命令显示SELinux status: disab…

    other 2023年5月10日
    00
  • linux shell 中数组的定义和for循环遍历的方法

    让我来详细讲解一下“linux shell 中数组的定义和for循环遍历的方法”。 数组的定义 在 Linux shell 中,数组可以通过如下方式定义: array_name=(value1 value2 value3 … valuen) 其中,array_name 是数组的名称,value1 到 valuen 是数组中的元素,每个元素之间用空格隔开。…

    other 2023年6月25日
    00
  • 关于cmake:移动目录后编辑和删除cmakecache.txt

    关于CMake:移动目录后编辑和删除CMakeCache.txt CMake是一个跨平台的开源构建工具,用于管理C++项目的构建过程。在使用CMake构建项目时,我们需要移动项目目录。在移动目录后,我们需要编辑或删除CMakeCache.txt文件以便重新构建项目。本攻略将介绍何在移动目录后编辑和删除CMakeCache.txt文件,并提供两个示例。 移动目…

    other 2023年5月9日
    00
  • C语言中static与sizeof查缺补漏篇

    C语言中static与sizeof查缺补漏篇 static关键字 在C语言中,static是一个关键字,用于声明静态变量和静态函数。静态变量和静态函数具有以下特点: 静态变量:静态变量在程序的整个生命周期内都存在,不会因为函数的调用而被销毁。它们在内存中的位置固定,只会被初始化一次。静态变量默认情况下具有文件作用域,即只能在声明它的文件中访问。 示例1:静态…

    other 2023年7月29日
    00
  • vue全局引入scss(mixin)

    要在Vue中全局引入SCSS mixin,需要以下步骤: 1. 安装sass-loader和node-sass 在Vue项目中使用SCSS需要先安装sass-loader和node-sass两个依赖包。 npm install sass-loader node-sass -D 2. 在vue.config.js中配置 在Vue项目根目录下新建vue.conf…

    other 2023年6月27日
    00
  • 一篇文章带你了解C语言内存对齐解决的问题

    一篇文章带你了解C语言内存对齐解决的问题 什么是内存对齐问题? 在C语言中,内存对齐是指数据在内存中存储时按照一定规则对齐的过程。由于硬件的限制,访问未对齐的数据可能会导致性能下降或者程序崩溃。因此,了解和解决内存对齐问题对于编写高效且稳定的C程序非常重要。 内存对齐规则 在C语言中,内存对齐规则是由编译器和硬件共同决定的。通常情况下,编译器会根据硬件的要求…

    other 2023年8月2日
    00
合作推广
合作推广
分享本页
返回顶部