c++入门之初话结构体
结构体是一种具有一定数据结构思想的数据类型,我们在对待结构体的时候,用该从数据结构的思想去审视结构体。下面给出结构体的定义
struct mystruct
{char name[];
int score;
double average;
};
上述是一段关于结构体类型定义的基本知识,总结两点:
1 struct 是关键字,不是变量类型,变量类型是 struct mystruct
注意每个结构体成员后面是分号:";",而不是逗号:“,”。
mystruct students{"zhangsan",,85.42};
上述进行了结构体变量的定义知识,总结两点:
1 students 是结构体变量名,代码中初始化的方式采用了c++11.0的新标准,即可以使用{}初始化,且可以省略“=”
2 结构体成员初始化之间采用逗号,而不是分号,注意区别定义的时候。
在此,描述一个妙用,

上述过程,总结三点:
string 类的名称定义在名称空间std里面,因此要想使用,需要采用std的说明,定义名称空间的意义是为了避免使得我们的变量名和别人的变量名冲突。
2 理解string是一个类!!
理解结构体的这种可以将类作为一种变量类型的用法
下面研究一下结构体数组:

最终总结:最为重要的一点在于:我们要理解结构体仍然是一种变量类型,只不过我们需要类型名和变量名是什么。结构体变量和int ,char类型都是平权的,因此其他类型具有的操作,比如具有形参,实参,定义数组,函数类型。都可以与struct有关。
下面给出共用体的结构体中的定义:

上图在结构体中定义了一个struct结构体,同时在结构体成员中定义了一个共用体union ,但注意这里没有定义共用体的类型。
在此需要明白:数据类型是可以嵌套的,且共用体的作用是:为共用体内的变量,分配同一个空间,因此共用体的分配空间大小是,共用体成员中所占空间最大的数据类型,比如double。而共用体的本质作用在于,所有类型的变量共用一个存储空间,某一个时刻,只能有一个变量的值被保存,这就是共用体!
c++入门之初话结构体的更多相关文章
- swift菜鸟入门视频教程-09-类和结构体
本人自己录制的swift菜鸟入门,欢迎大家拍砖,有什么问题能够在这里留言. 主要内容: 类和结构体对照 结构体和枚举是值类型 类是引用类型 类和结构体的选择 集合(collection)类型的赋值与复 ...
- C# Socket 入门4 UPD 发送结构体(转)
今天我们来学 socket 发送结构体 1. 先看要发送的结构体 using System; using System.Collections.Generic; using System.Text; ...
- C语言入门(15)——结构体与数据抽象
大多数的计算机运算是对现实世界的模拟,如果想用计算机来模拟现实世界需要用到数据抽象的方法.所谓抽象是从实际的人.物.事和概念中抽取所关心的共同特征,,忽略非本质的细节,吧这些特征用各种概念精确的加以描 ...
- C语言入门(14)——结构体
整数.字符.布尔值.浮点数这些数据类型都具有单一的值,这些可称为基本数据类型.但字符串是一个例外,它由很多字符组成,像这种由基本类型组成的数据类型称为复合数据类型,正如表达式和语句有组合规则一样,由基 ...
- c++入门之初话指针
先上代码:再进行总结知识: # include "iostream" struct ant_year_end { int year; }; int main() { using n ...
- 飞控入门之C语言结构体、枚举
结构体 先来说明一下,结构体存在的意义.比如说有一只猫,要在C语言程序中综合描述它,那么可以这样说,它的体重是float类型的,颜色是char类型的,它的一些食物名字是一个数组,那么如果分开定义这些变 ...
- C++入门之初话多态与虚函数
多态性是面向对象程序设计的又一个重要思想,关于多态的详尽描述,请看本人的收藏https://www.cnblogs.com/hust-ghtao/p/3512461.html.这篇博文中,详尽的探讨了 ...
- Golang 入门 : 结构体(struct)
Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和 ...
- 《挑战30天C++入门极限》新手入门:C/C++中的结构体
新手入门:C/C++中的结构体 什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构 ...
随机推荐
- JavaWeb 过滤器——验证登录 防止未登录进入界面
昨天刚刚完成老师布置的一个Web小项目,项目中用到了两个过滤器(编码过滤.登录过滤) 比如电商网页中有些不需要登录也能访问(首页.商品详细信息...),其他都需要过滤在会话作用域(session)中是 ...
- windows chocolatey 修改默认安装软件默认安装路径
管网解释 https://chocolatey.org/docs/features-install-directory-override 1.--install-directory=value ...
- c/c++ 标准库 vector
c/c++ 标准库 vector 标准库 vector的小例子 test1~test7 #include <iostream> #include <vector> using ...
- c/c++ 模板与STL小例子系列<一 >自建Array数组
c/c++ 模板与STL小例子系列 自建Array数组 自建的Array数组,提供如下对外接口 方法 功能描述 Array() 无参数构造方法,构造元素个数为模板参数个的数组 Array(int le ...
- 使用 boost.asio 简单实现 异步Socket 通信
客户端: class IPCClient { public: IPCClient(); ~IPCClient(); bool run(); private: bool connect(); bool ...
- CSS2属性选择器和css3选择器的用法和区别
兄弟们,这是我第一次写博客,希望对进来的人有用,写的不好别喷哈,谢谢. css2属性选择器: 1.[attribute] 例子: [title] 解释: 选择含有 title 属性的所有元 ...
- Django-rest-framework 接口实现 Serializer 使用
Django接口实现 DRF 使用 以下模块 实现 json数据 序列化 博客: https://www.cnblogs.com/liwenzhou/p/9959979.html Django RES ...
- 设计模式のMementoPattern(备忘录模式)----行为模式
一.产生背景 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态, ...
- Linux分区的几种方案
通用方法/boot 引导分区 200M swap 交换分区 内存的1.5倍(内存小于8G) 大于8G 给8G/ 根分区 剩下多少给多少 数据非常重要/bootswap/ 50-200G/data 剩下 ...
- 为什么swift是面向协议的编程--对面向对象机制的改进
主要目标是提供抽象能力和解决值类型的多态问题 Actually, Abrahams says, those are all attributes of types, and classes are j ...