C++复合类型(结构体)

其实c++的结构体可以理解为类似于python的字典,我个人理解, 但有区别

先看结构

#include <iostream>
关键字          标记成为新类型的名称
struct          inflatable
{
    std::string mystr;                   结构成员
    char name[20];
    float volume;
    double price;
};

c++ 在声明结构变量的时候可以省略关键字struct

同时还要注意外部声明, 和局部声明

#include <iostream>
#include <string>
#include <cstring>

struct inflatable
{
    std::string mystr;
    char name[20];
    float volume;
    double price;
};

int main(int argc, char const *argv[]) {
  using namespace std;

  inflatable guest = {
    "hello",
    "Glorious Gloria",
    1.88,
    29.99
  };
  inflatable pal = {
    "world",
    "Audacious Arthur",
    3.12,
    32.99
  };
  int a=12.40;
  std::cout << guest.mystr << ‘\n‘;
  std::cout << a << ‘\n‘;
  std::cout << "Expand your guest list with <<" << guest.name << ">>"
            << "and" << "<<" << pal.name << ">>" << ‘\n‘;
  std::cout << "you can have both for $" << guest.price + pal.price <<‘\n‘;

  return 0;
}

其他结构属性

#include <iostream>
#include <string>
#include <cstring>

struct inflatable
{
    std::string mystr;
    char name[20];
    float volume;
    double price;
};

int main(int argc, char const *argv[]) {
  using namespace std;
  inflatable guest = {
    "hello",
    "Glorious Gloria",
    1.88,
    29.99
  };
  inflatable choice = guest;   这种方法叫成员赋值或者

inflatable choice;
choice = guest;

  std::cout << "Expand your guest list with <<" << guest.name << ">>" << ‘\n‘;
  std::cout << "choice choice.mystr ---->" << choice.mystr << ‘\n‘;
  return 0;
}

还可以

struct inflatable
{
    std::string mystr;
    char name[20];
    float volume;
    double price;
} mr_glitz = {"hello", "Glorious", 1.11, 11};当然,也可以不赋值

结构数组

也可以创建元素为结构的数组, 方法和创建基本类型数组完全相同。例如:

#include <iostream>
#include <string>
#include <cstring>

struct inflatable
{
    std::string mystr;
    char name[20];
    float volume;
    double price;
} mr_glitz = {"hello", "Glorious", 1.11, 11};

int main(int argc, char const *argv[]) {
  using namespace std;

  inflatable guests[2] = {
    {"hello", "doman", 2.1, 2.22},
    // {"world", "corleone", 2.2, 3333}
  };
  std::cout << "guests[0].mystr: " << guests[0].mystr << ‘\n‘;
  std::cout << "guests[1].name: " << guests[1].name << ‘\n‘;

  return 0;
}

结构中的位字段

  

struct torgle_register
{
  unsigned int SN :  4;
  unsigned int :4;
  bool goodIN : 1;
  bool goodTorgle : 1;
}

torgle_register tr = {14, true, false};
时间: 2024-10-07 11:14:10

C++复合类型(结构体)的相关文章

GO语言编程基础-复合类型结构体

大家好,我们是链客区块链技术问答社区,今天讲一讲Go语言的基础编程. 链客,有问必答!!! 1 结构体类型 有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性.显然单独定义以上变量比较繁琐,数据不便于管理. 结构体是一种聚合的数据类型,它是由一系列具有相同类型或不同类型的数据构成的数据集合.每个数据称为结构体的成员. 2 结构体初始化 2.1 普通变量 type Student struct { id   int name string sex  

同类型结构体之间赋值不一定有效

同类型结构体之间赋值不一定有效 今天为这个问题debug好久... 之前看到一个关于结构体使用的技巧, 这个技巧能够避免内存零碎. 保证结构体所属内存尽量不要零散化. struct struct_name { element_type varible; ...; element_type  pointer[0]; } 关于该用法的介绍. http://blog.csdn.net/cinmyheart/article/details/28985843 对于普通的结构体, struct num {

结构体、枚举类型及其练习题,最后的对战游戏(基础版)

结构体:在内存中临时存储数据的方式1.变量.常量2.数组,可以存储固定长度统一类型的数据3.集合4.结构体 学生信息:姓名,性别,年龄,系别 结构体含义:就是将生活中的一些个体,封装成一个特殊的类型 结构体是:用户自定义数据类型 创建:创建的位置:main函数之外struct Student{ public int Code; public string Name; public string Sex; public int Old; public DateTime Birthday;} 定义:

自定义数据类型 C++ 结构体类型 共同体类型 枚举类型 类类型{}

一.结构体类型 结构体类型,共用体类型,枚举类型,类类型等统称为自定义类型(user-defined-type,UDT). 结构体相当于其他高级语言中的记录(record);例如: struct Student{ int num; char name[20]; char sex; int agel float score; char addr[30]; }; 结构体声明的一般形式: struct 结构体类型名 {成员列表}: 结构体类型名用作结构体类型的标志,上面的Student就是结构体类型名

结构体、共用体和用户定义类型(2)

2.2结构体类型的变量.数组和指针变量的定义 可以用以下四种方式定义结构体类型的变量.数组和指针变量: (1)紧跟在结构体类型说明之后进行定义.例如: struct student { char name[12]; char sex; struct date birthday; float sc[4]; } std, pers[3], *pstd; 此处,在说明结构体类型 struct student 的同时,定义了一个结构体变量 std.有3个变量的结构体数组 pers 和基类型为结构体类型的

Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别

Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始-元组(tuples). 元组(tuple) 元组是多个值组成的复合值类型,例如,你可以定义一个含有整形和字符串的tuple let amout=(100,"EUR") 当你函数需要返回多个值时,元组这个时候非常有用,你可以使用下标方式来访问元组中的值,如.0,.1以此类推,如下: let

C 入门 第七节 结构体

//声明结构体  关键字  struct // 声明一个用于描述学生对象的结构体类型// 声明成员变量时不能赋值,因为这是在声明结构体类型// struct student// {//     int num; //学号  //成员变量之间用分号;隔开//     char name[30]; //姓名  //必须指定字符数组的大小//     char sex;  //性别//     float score;  //分数// }; //不要忘了 ; // typedef struct stu

Swift的结构体,枚举,可选Optional,可选链

//: Playground - noun: a place where people can play import Cocoa var str0 = "Hello, playground" //类是引用类型,结构体与枚举是值类型 //*****************结构体*************** struct Point { var x = 0 var y = 1 //结构体的的方法 //为了能够在实例方法中修改属性值,可以在方法定义前添加关键字mutating mutat

Swift入门篇-结构体

前面主要是介绍swift语言中基本类型的用法,今天给大家介绍的是swift的结构体的用法,swift中结构体的用法和其他语言的用法,还有不太一样,不过您多敲几遍,就可以理解结构体,结构体在ios开发中是灰常重要的一部分,如果您很好的掌握结构体,在后面ios开发中,会理解的更加清楚. 一:结构体声明 格式: struct 结构体名 { } 说明: 1: struct 是定义结构体的关键字 例子 /* 1:struct 是结构体的关键字 2:student 结构体名称 3:student() 创建一

数据封装-结构体

结构体类型作用 *结构体类型允许程序员把一些分量聚合成一个整体,用一个变量表示. *一个结构体的各个分量都有名字,把这些分量称为成员(member). *由于结构体的成员可以是各种类型的,程序员能创建适合于问题的数据集合. 结构体类型的定义 *定义结构体类型中包括哪些分量 *格式: struct 结构体类型名{ 字段声明; }; 注意 *字段名可与程序中的变量名相同 *在不同的结构体中可以有相同的字段名 *结构体成员的类型可以是任意类型,当然也可以是结构体类型 结构体变量的初始化 student