C++中结构体的类型定义和初始化以及变量引用

下面是关于C++中结构体的类型定义、初始化和变量引用的详细攻略。

结构体的类型定义

在C++中,结构体是一种用户自定义的数据类型,可以将多个不同类型的变量组合在一起形成一个新的数据类型,一般用于表示复杂的数据结构。

结构体的定义方式为:

struct 结构体名称 {
  类型1 变量名称1;
  类型2 变量名称2;
  …
  类型n 变量名称n;
};

其中,结构体名称为自定义的名称,可以是任意的标识符。类型1、类型2等表示每个变量的数据类型,变量名称1、变量名称2等表示每个变量的名称。结构体定义完成后,它就成了一种全新的数据类型,可以定义与之对应的变量。

结构体的初始化

结构体变量的初始化可以采用以下两种方式:

  1. 直接赋值初始化

直接对结构体变量进行赋值即可完成结构体变量的初始化。

例如:

struct Student {
  char name[20];
  int age;
  char gender;
} s1 = {"张三", 18, 'M'};

以上代码中,我们定义了一个名为Student的结构体,其中包含了name、age、gender三个成员变量。对结构体变量s1进行初始化时,可以直接在等号右边用花括号的方式进行赋值初始化,赋值的顺序要和结构体中成员变量的顺序一致。

  1. 分别赋值初始化

通过成员运算符“.”,可以依次对结构体的各成员变量进行赋值初始化。

例如:

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

int main() {
  Student s2;
  strcpy(s2.name, "李四");
  s2.age = 19;
  s2.gender = 'F';
  return 0;
}

以上代码中,我们定义了一个名为Student的结构体,在主函数中分别对其成员变量进行初始化。首先使用strcpy函数将字符串“李四”复制到s2结构体的name成员变量中,然后分别对age和gender成员变量进行了赋值操作。

结构体变量的引用

对于结构体中的成员变量,可以通过.操作符来访问每个成员变量的值。在结构体变量的定义时,通常采用结构体类型名+空格+变量名的方式来定义结构体变量;当然也可以先定义结构体类型名,然后再通过类型名来定义结构体变量。

例如:

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

int main() {
  // 第一种方式
  Student s3;
  s3.age = 20;
  cout<<s3.age<<endl;

  // 第二种方式
  struct Student s4;
  s4.age = 21;
  cout<<s4.age<<endl;

  return 0;
}

以上代码中,我们分别使用了两种方式来定义结构体变量,并通过.操作符来访问各成员变量的值。

除了用.操作符来引用结构体变量的成员变量外,还可以使用指向结构体的指针来访问各成员变量的值。使用指向结构体的指针访问结构体成员变量时,需使用指针运算符->。

例如:

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

int main() {
  Student s5 = {"王五", 22, 'M'};
  Student* ptr = &s5;
  cout<<"name:"<<ptr->name<<endl;
  cout<<"age:"<<ptr->age<<endl;
  cout<<"gender:"<<ptr->gender<<endl;
  return 0;
}

以上代码中,我们定义了一个指针ptr,它指向结构体变量s5。在访问s5的成员变量时,使用指针运算符->,输出每个成员变量的值。

综上所述,这就是关于C++中结构体的类型定义、初始化和变量引用的完整攻略。

阅读剩余 59%

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++中结构体的类型定义和初始化以及变量引用 - Python技术站

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

相关文章

  • Android中常用单位dp,px,sp之间的相互转换

    Android中常用单位dp,px,sp之间的相互转换 前言 在Android开发中,我们常常需要使用到尺寸单位,如dp,px和sp。本文将介绍这些常用单位之间的相互转换,并提供相关的代码示例。 dp与px之间的转换 dp(density independent pixels)与px(pixels)之间的转换是Android开发中经常使用的操作。dp是设备独…

    其他 2023年3月28日
    00
  • 破解zip加密文件常用的几种方法

    破解zip加密文件常用的几种方法 对于加密的zip文件,有时我们需要找到一些方法进行解密。因此,在本文中,我们将探讨破解zip加密文件的几种主要方法。 方法一:使用暴力破解工具 使用暴力破解工具是一种主要的解密zip文件的方法。这些工具会尝试使用各种组合来破解密码,这需要一定的计算能力和时间。 以下是一些常见的暴力破解工具: John the Ripper …

    其他 2023年3月29日
    00
  • CAD怎么自定义工具栏?

    CAD是一款强大的计算机辅助设计软件,用户可以根据自己的需求自定义工具栏,以提高工作效率。下面是一份详细的攻略: 1. 打开CAD软件 在CAD软件中,点击“工具栏”选项,然后再点击“自定义”选项。 2. 新建自定义工具栏 点击“新建”按钮,输入工具栏名称,选择图标,然后点击“确定”。 3. 添加工具栏命令 在“自定义工具栏”界面中,选择需要添加到工具栏的命…

    other 2023年6月25日
    00
  • 微软向全体Windows Insider会员发送邮件通知: Win10正式版发布

    微软向全体Windows Insider会员发送邮件通知: Win10正式版发布攻略 1. 收到邮件通知 微软将向所有Windows Insider会员发送邮件通知,通知他们Win10正式版已发布。您将在您注册的邮箱中收到这封邮件。邮件的主题可能类似于“Win10正式版发布通知”。 2. 阅读邮件内容 打开您的邮箱,找到微软发送的邮件。点击邮件以打开并阅读其…

    other 2023年7月27日
    00
  • js生成word中图片处理

    js生成word中图片处理 在使用js生成word文档时,有时需要在文档中插入图片,但是插入图片需要对图片进行处理,使之适应word文档。下面介绍一些js处理word中图片的方法。 1. 压缩图片 插入到word文档中的图片应该尽可能地压缩,以减小文件大小。可以使用canvas将图片压缩后再插入到word文档中。示例代码如下: function compre…

    其他 2023年3月28日
    00
  • 石头剪刀布openjudge1.6.08

    以下是石头剪刀布openjudge1.6.08的完整攻略,包括题目描述、输入输出格式、解题思路和两个示例说明。 题目描述 石头剪刀布是一种常见的游戏,两个人同时出手势,根据规则判断胜负。现在给定两个人出的手势,请判断胜负。 输入输出格式 输入格式: 第一行输入一个整数 $n$,表示测试数据的组数。 接下来 $n$ 行,每行输入两个字符串 $a$ 和 $b$,…

    other 2023年5月6日
    00
  • tnsnames.ora配置注意(连接新的数据库)

    tnsnames.ora配置注意(连接新的数据库) 什么是tnsnames.ora? tnsnames.ora是Oracle数据库连接规范的文件之一,其中包括数据库的连接信息,比如服务器端的主机名、端口号、实例名等。这些信息可以用来在客户端建立连接到Oracle数据库的必要信息。 配置tnsnames.ora 当我们需要连接一个新的数据库时,需要在客户端编辑…

    其他 2023年3月28日
    00
  • Django 设置多环境配置文件载入问题

    Django 是一个开源的 Python Web 框架,它提供了灵活的配置和管理方式。在开发环境和生产环境中,我们通常需要有不同的配置文件来设置数据库连接、调试模式和静态文件等。本文将详细讲解如何在 Django 中设置多环境配置文件载入问题。 1. 准备工作 首先,我们需要在 Django 项目根目录下创建一个名为 settings 的文件夹,并在该文件夹…

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