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

先看结构

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

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

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

#include <iostream>
#include <string>
#include <cstring> struct inflatable
{
std::string mystr;
char name[];
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 ;
}

其他结构属性

#include <iostream>
#include <string>
#include <cstring> struct inflatable
{
std::string mystr;
char name[];
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 ;
}

还可以

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

结构数组

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

#include <iostream>
#include <string>
#include <cstring> struct inflatable
{
std::string mystr;
char name[];
float volume;
double price;
} mr_glitz = {"hello", "Glorious", 1.11, }; int main(int argc, char const *argv[]) {
using namespace std; inflatable guests[] = {
{"hello", "doman", 2.1, 2.22},
// {"world", "corleone", 2.2, 3333}
};
std::cout << "guests[0].mystr: " << guests[].mystr << '\n';
std::cout << "guests[1].name: " << guests[].name << '\n'; return ;
}

结构中的位字段

  

struct torgle_register
{
unsigned int SN : ;
unsigned int :;
bool goodIN : ;
bool goodTorgle : ;
} torgle_register tr = {, true, false};

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

  1. 黑马程序员——C语言基础 变量类型 结构体

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...

  2. C++复合类型(结构,共用体,枚举)

    •结构是用户定义的类型,而结构的声明定义了这种类型的数据属性. 一.关键字struct声明:   定义了一种新类型 struct inflatable{ char name[20];//结构成员 fl ...

  3. Swift超详细的基础语法-结构体,结构体构造器,定义成员方法, 值类型, 扩充函数

    知识点 基本概念 结构体的基本使用 结构体构造器(构造函数/构造方法) 结构体扩充函数(方法), 又称成员方法 结构体是值类型 1. 基本概念 1.1 概念介绍 结构体(struct)是由一系列具有相 ...

  4. 全国计算机等级考试二级教程-C语言程序设计_第14章_结构体、共用体和用户定义类型

    函数的返回值是结构体类型 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct ...

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

    一.结构体类型 结构体类型,共用体类型,枚举类型,类类型等统称为自定义类型(user-defined-type,UDT). 结构体相当于其他高级语言中的记录(record);例如: struct St ...

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

    Swift有许多种存储数据方式,你可以用枚举(enums),元组(tuples),结构体(structs),类(classes),在这篇文章中我们将比较枚举.元组.结构体之间区别,首先从最简单的开始- ...

  7. 17.结构体(typedef)

    1.结构体 a.结构体类型定义b.结构体变量定义c.结构体变量的初始化d.typedef改类型名e.点运算符和指针法操作结构体f.结构体也是一种数据类型,复合类型,自定义类型 2.结构体变量的定义 ( ...

  8. 07.C语言:结构体、共用体、枚举

    一.结构体 是一种复合的数据类型,由多个不同类型的数据(为结构体的成员)组成的集合. 在c语言中没有给出结构体这种类型具体的形式(名称),但是给出类定义该结构体类型的方法(格式). 在使用结构体类型时 ...

  9. go 基础 结构体

    结构体是类型中带有成员的复合类型.go语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性. go语言中的类型可以被实例化,使用new和&构造类型实例的类型是类型的指针. 结构体 ...

  10. C语言 ---- 函数 结构体 iOS学习-----细碎知识点总结

    函数的定义     返回值类型 函数名(形式参数列表) {        函数的实现     } 函数不允许嵌套定义 如果函数的定义在主调函数之后,那么要进行提前声明才能使用. // 匿名结构体,结构 ...

随机推荐

  1. 生产机器禁止ROOT远程SSH登录

    vim /etc/ssh/sshd_config PermitRootLogin no /etc/init.d/sshd restart

  2. HTML5学习笔记(十二):JavaScript新增Map和Set

    Map JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串.但实际上Nu ...

  3. C# IOCP服务器项目(学习)

    无论什么平台,编写支持高并发性的网络服务器,瓶颈往往出在I/O上,目前最高效的是采用Asynchronous I/O模型,Linux平台提供了epoll,Windows平台提供了I/O Complet ...

  4. 【转】(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout

    原创至上,移步请戳:(三)unity4.6Ugui中文教程文档-------概要-UGUI Basic Layout 2. BasicLayout 在这一节我们会看到UI元素相对于画布的位置是怎样的. ...

  5. 生产者消费者问题Java三种实现

    生产者-消费者Java实现 2017-07-27 1 概述 生产者消费者问题是多线程的一个经典问题,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品. 解决生产者/ ...

  6. java连接https时禁用证书验证.

    import java.io.File; import java.security.cert.CertificateException; import java.util.List; import j ...

  7. Python爬取新浪微博评论数据,写入csv文件中

    因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...

  8. jetty debug修改 java static 静态变量值不会生效

    在jetty debug模式下修改static静态变量值不会重新Load 因为jetty是嵌入式web容器,static静态变量是全局的,如果想生效,就必须重启jetty 在热部署的时候tomcat会 ...

  9. Xapian构建索引说明

    Reference: http://www.totogoo.com/article/115/xapian-desc.html Xapian与开源 Xapian的官方网站是http://www.xapi ...

  10. 5. 支持向量机(SVM)软间隔

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...