学习C++复合数据类型
复合数据类型
String 类型
char str[20]; //strlen(str)的长度不一定是20
cin.getline(str,20); //读入一行输入(cin是iostream类的一个对象,getline()是iostream类的一个类方法)
使用R来标识原始字符串
cout<<R"(Tom is handsome,\n"this is wrong".)"<<'\n';
//运行结果:Tom is handsome,\n"this is wrong".
C++结构体
#include<iostream>
#include<String>
using namespace std;
struct student
{string name;string sex;int age;
};int main()
{student one={"xiaoming","男",18,}; cout<<one.name+" "<<one.sex+" "<<one.age<<endl;return 0;
}
共用体
只能存储其中的一种数据类型(long或char):
union id{long id_num;char id_char[20];} id_val;
假如一些商品的id是字符串,而另一些是整数,就可以用到共用体
//结构体
struct widget{char brand[20];int type;union id{long id_num;char id_char[20];} id_val; //共用体
};
//共用体的使用
widget prize={"笔记本",1};if (prize.type==1)cin>>prize.id_val.id_num;elsecin>>prize.id_val.id_char;
枚举
enum spectrum{red,orange,yellow,green,blue,violet,indigo,ultraviolet};
此结构:
spectrum band;
band=blue; //valid
++band; //invalid
int color=blue;//valid
band=3;invalid
band=(orange+blue);//invalid
band=spectrum(3); //valid
显式地设置枚举量的值:
enum bits{one=1,two=2,four=4,six=6};
指针和自由存储空间
**
一定要在对指针应用解除应用运算符(*)之前,将指针初始化为一个确定、适当的地址
**
int a=6;
int* b;//指针使用来存储地址的变量
//或者int* b=&a;结果:*b=6,b=&a(a的地址)
b=&a;
cout<<*b; //6
将数字值作为地址来使用时,需要进行强制转换
int* pt;
pt=(int*)0xB8000000;
使用new来分配内存
int* pn=new int;
*pn=1;
delete pn;//释放内存
使用new来创建动态数组
int* psome=new int[10];
psome[0]=1;
psome[1]=2;
psome[2]=3;
psome=psome+1;
cout<<psome[0]<<psome[1];//结果为2,3;将psome+1后导致它psome[0]指向的是数组的第二个值,即增加sizeof(int)
psome=psome-1;
delete []psome;
指针与数组的关系:
int w[3]={};
int* pw=w;
//数组存在:w=&w[0],即数组首元素的地址
指针的值可以修改,数组名是常量
数组的sizeof得到数组的长度,而指针的到的是指针的长度(8位)
struct people
{string name;int age;
};people* ps=new people;
ps->name="xiaoming";
ps->age=18;
类型组合的应用
与数组相似的vector和array
#include<vector>
#include<array>
using namespace std;
vector<int> vi;
int n;
cin>>n;
vector<double> vd(n);
array<int,5> ai;
array<double,4> ad={1.2,1.3,1.4,1.23};
//array不能使用变量n来创建array
学习C++复合数据类型相关推荐
- 《Go语言圣经》学习笔记 第四章 复合数据类型
<Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...
- 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)
Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...
- 五、Go语言复合数据类型(下)
@Author:Runsen 复合数据类型主要包含Go中的一些复杂类型,主要有指针类型,数组类型,切片类型,结构体类型,Map类型和Channel类型 下面,我们继续学习结构体类型,Map类型和Cha ...
- 春晚黑科技全盘点:刘德华、周杰伦到底来没来?Ubuntu linux c复合数据类型--结构体
本文转载自IT之家,刘德华.周杰伦到底有没有来春晚? 很多看了 2021 年央视春晚的人会对这个问题感兴趣--其实,周杰伦.刘德华是通过 AR.云技术 "出现"在现场的. 央视春晚 ...
- golang json转结构体中嵌套多个数组_ElasticSearch第六篇:复合数据类型-数组,对象...
在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON ...
- 【oracle】复合数据类型
[oracle]复合数据类型 1123-02 更新 复合数据类型 复合数据类型举例 1.record set serveroutput on; /* 复合数据类型--记录:for循环中 给 记录类型变 ...
- PL/SQL-2 复合数据类型
-------------------------------------------------------------------------- ************************* ...
- PL/SQL复合数据类型
--一.PL/SQL复合数据类型 --(一).PL/SQL记录 --1.定义PL/SQL记录 --(1).定义PL/SQL记录 --Grammar TYPE type_name IS RECORD(f ...
- java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....
[填空题]类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素.一个类的实现包括两部分:____和_____. 更多相关问题 [名词解释] 观叶树木 [单选] 开花时有浓郁香气的树种是 ...
最新文章
- SQL Server 2016:实时查询统计
- 5 Handler与子线程
- 常见操作系统调度算法研究(2)
- SecureCRT配置
- codeforce 780C Andryusha and Colored Balloons
- Python 清理项目的目录
- 旋转数组的最小数字(牛客网C++代码)
- 2022年4月第十三届蓝桥杯省赛C组C语言/C++真题及答案
- 第二章 软件项目立项与规划
- zuc算法代码详解_ZUC算法原理及实现过程.doc
- alt复制选区就会卡 ps_PS经常用到的复制技巧
- 数据库中的E—R图画法
- 如何将手机中Word文档转换成PDF
- NLP学习-1--语料预处理与向量空间,语料格式
- 计算机毕设项目 python微信公众平台机器人
- Windows - 文件系统 学习/收集
- VMR论文visualization实验总结
- 直播界很火的无线领夹麦克风快充方案 Type-C接口 PD快充+无线麦克风可同时进行
- 贪心(greedy)
- linux中出现不在 sudoers 文件中。此事将被报告的解决方法