C++关键字之——struct

今天我要说的还是非标准数据类型——struct(结构体)。

还是一样,先复习旧的知识:

基本数据类型:

整型 int / long / long long
布尔型 bool
字符型 char
实型
→ 单精度型 / 浮点型 float
→ 双精度型 double

非基本数据类型:

数组 [ ]
指针 *
空类型 void
结构体 struct
联合体 union
枚举 enum
class

众嗦周知,struct(结构体)是每个C++爱好者必学的基础知识

1、 struct简介:

在C++中,struct是一种用户自定义的数据类型,用于封装零个或多个不同类型的数据成员。它类似于类(class),但与类不同的是它默认的成员访问权限是public的。

struct可以用来组织相关的数据成员,使其在一个结构体中形成一个单独的实体。结构体中的数据成员可以是不同类型的,例如整型、浮点型、字符型、数组等。

struct的定义形式如下:

struct 结构体名 {
数据类型1 成员名1;
数据类型2 成员名2;

};

例如,下面是一个表示学生信息的结构体的定义:

struct Student {
int id;
string name;
float score;
};

在上面的例子中,Student是结构体的名称。它包含了三个数据成员:id、name和score。

可以通过结构体名加成员名的方式访问结构体中的数据成员,例如:

Student s;
s.id = 1001;
s.name = “Tom”;
s.score = 95.5;

结构体还可以作为函数的参数和返回值,从而实现更灵活的数据传递和处理。

总而言之,struct是C++中用于定义自定义数据类型的一种机制,它允许我们将不同类型的数据成员组织在一起,以便更方便地进行数据操作和管理。

2、struct应用:

struct是一种在C++中定义和组织数据的方式。它允许开发者定义一个包含多个不同数据类型的组合数据类型,并可以根据需求自由添加或删除成员。

最常见的用途是定义一个包含相关属性的数据结构。例如,可以使用struct来定义一个表示学生的数据结构,其中包含学生的姓名、年龄、性别等属性。

示例代码如下:

#include <stdio.h>

struct Student {
    char name[20];
    int age;
    char gender;
};

int main() {
    struct Student student1;

    // 设置学生的属性
    strcpy(student1.name, "John");
    student1.age = 20;
    student1.gender = 'M';

    // 输出学生的属性
    printf("Name: %s\n", student1.name);
    printf("Age: %d\n", student1.age);
    printf("Gender: %c\n", student1.gender);

    return 0;
}

在上面的示例中,我们定义了一个名为Student的struct,其中包含了三个成员变量:name、age和gender。然后,在main函数中,我们创建了一个struct Student类型的变量student1,并设置了它的属性值。最后,我们使用printf函数输出了学生的属性。

除了定义属性,struct还可以嵌套使用。这样一来,就可以将不同的数据结构组合在一起,形成更复杂的数据类型。这种嵌套使用可以更好地表示现实世界中的复杂关系。

struct还可以作为函数参数和返回值使用,从而方便地传递和操作复杂的数据类型。

总而言之,struct在C++中的应用非常广泛,可以用来定义各种复杂的数据结构,提高代码的可读性和可维护性。

3、struct示例代码:

以下是一个简单的C++结构体示例代码:

#include <iostream>

struct Person {
    std::string name;
    int age;
    std::string city;
};

int main() {
    Person person1; // 创建一个Person结构体对象
    
    // 设置结构体成员的值
    person1.name = "John Doe";
    person1.age = 25;
    person1.city = "New York";
    
    // 打印结构体成员的值
    std::cout << "Name: " << person1.name << std::endl;
    std::cout << "Age: " << person1.age << std::endl;
    std::cout << "City: " << person1.city << std::endl;
    
    return 0;
}

在上面的示例中,我们定义了一个名为Person的结构体,它具有三个成员变量:nameagecity。然后,在main函数中,我们创建了一个Person对象person1并设置了其成员变量的值。最后,我们使用std::cout打印了结构体成员的值。

此代码将输出:

Name: John Doe
Age: 25
City: New York

这是一个简单的示例,演示了如何在C++中使用结构体。结构体可以用来组织相关的数据,并以更复杂的方式进行操作和使用。

4、struct的深究和使用注意事项:

深究struct:

在C++中,struct是一种用户自定义的数据类型,用于组织相关的数据项。它类似于类(class),但与类不同的是,struct的默认访问权限是公共的(public),而类的默认访问权限是私有的(private)。
struct可以包含成员变量(也称为数据成员)和成员函数(也称为成员方法)。它可以用来表示某个实体的特征和行为。

下面是一些关于struct的使用注意事项:

  1. 结构体的定义:struct的定义可以放在全局范围内,也可以放在类的内部。在全局范围内定义的结构体可以直接使用,而在类的内部定义的结构体需要通过类名加上作用域运算符(::)来访问。
  2. 成员变量的访问:结构体的成员变量可以通过结构体对象的成员访问操作符(.)来访问。同时,也可以使用指向结构体对象的指针来访问成员变量,使用指针的成员访问运算符(->)。
  3. 成员函数的定义:结构体可以包含成员函数,这些函数可以在结构体内部定义,也可以在外部定义。在结构体内部定义的成员函数可以直接使用结构体的成员变量,而在外部定义的成员函数需要使用结构体对象的成员访问操作符(.)或指针的成员访问运算符(->)来访问成员变量。
  4. 结构体的大小:结构体的大小取决于其成员变量的大小和对齐规则。C++中的结构体对齐是根据特定的对齐规则来决定的,以确保结构体的成员变量以最高效的方式存储在内存中。
  5. 结构体的初始化:可以使用初始化列表来初始化结构体的成员变量。在创建结构体对象时,可以通过大括号初始化列表来为成员变量赋值,也可以在定义结构体的同时进行赋值。
  6. 结构体的传递:可以将结构体作为参数传递给函数,也可以将结构体作为返回值返回。传递结构体时,可以通过值传递或引用传递的方式进行。
需要注意的是,结构体与类不同,不支持继承、封装和多态等面向对象的特性。如果需要更复杂的功能,建议使用类来实现。

总结:

struct是C++中一种用于组织相关数据项的自定义数据类型。它可以包含成员变量和成员函数,可以通过成员访问操作符来访问成员变量。在使用struct时,需要注意结构体的定义、访问方式、大小、初始化和传递等方面的特点和注意事项。

完结撒花!期待(✧∀✧)下次的精彩内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值