复合数据类型

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++复合数据类型相关推荐

  1. 《Go语言圣经》学习笔记 第四章 复合数据类型

    <Go语言圣经>学习笔记 第四章 复合数据类型 目录 数组 Slice Map 结构体 JSON 文本和HTML模板 注:学习<Go语言圣经>笔记,PDF点击下载,建议看书. ...

  2. 判断题:oracle自带的sql语言环境是pl/sql,Oracle之PL/SQL学习笔记之数据类型(三)

    Oracle之PL/SQL学习笔记之数据类型(三) 所有的编程语言中变量是使用最频繁的.PL/SQL作为一个面向过程的数据库编程语言同样少不了变量,利用变量可以把PL/SQL块需要的参数传递进来,做到 ...

  3. 五、Go语言复合数据类型(下)

    @Author:Runsen 复合数据类型主要包含Go中的一些复杂类型,主要有指针类型,数组类型,切片类型,结构体类型,Map类型和Channel类型 下面,我们继续学习结构体类型,Map类型和Cha ...

  4. 春晚黑科技全盘点:刘德华、周杰伦到底来没来?Ubuntu linux c复合数据类型--结构体

    本文转载自IT之家,刘德华.周杰伦到底有没有来春晚? 很多看了 2021 年央视春晚的人会对这个问题感兴趣--其实,周杰伦.刘德华是通过 AR.云技术 "出现"在现场的. 央视春晚 ...

  5. golang json转结构体中嵌套多个数组_ElasticSearch第六篇:复合数据类型-数组,对象...

    在ElasticSearch中,使用JSON结构来存储数据,一个Key/Value对是JSON的一个字段,而Value可以是基础数据类型,也可以是数组,文档(也叫对象),或文档数组,因此,每个JSON ...

  6. 【oracle】复合数据类型

    [oracle]复合数据类型 1123-02 更新 复合数据类型 复合数据类型举例 1.record set serveroutput on; /* 复合数据类型--记录:for循环中 给 记录类型变 ...

  7. PL/SQL-2 复合数据类型

    -------------------------------------------------------------------------- ************************* ...

  8. PL/SQL复合数据类型

    --一.PL/SQL复合数据类型 --(一).PL/SQL记录 --1.定义PL/SQL记录 --(1).定义PL/SQL记录 --Grammar TYPE type_name IS RECORD(f ...

  9. java中的复合数据类型是什么_【填空题】类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素。一个类的实现包括两部分:____和_____....

    [填空题]类是Java中的一种重要的复合数据类型,是组成Java程序的基本要素.一个类的实现包括两部分:____和_____. 更多相关问题 [名词解释] 观叶树木 [单选] 开花时有浓郁香气的树种是 ...

最新文章

  1. SQL Server 2016:实时查询统计
  2. 5 Handler与子线程
  3. 常见操作系统调度算法研究(2)
  4. SecureCRT配置
  5. codeforce 780C Andryusha and Colored Balloons
  6. Python 清理项目的目录
  7. 旋转数组的最小数字(牛客网C++代码)
  8. 2022年4月第十三届蓝桥杯省赛C组C语言/C++真题及答案
  9. 第二章 软件项目立项与规划
  10. zuc算法代码详解_ZUC算法原理及实现过程.doc
  11. alt复制选区就会卡 ps_PS经常用到的复制技巧
  12. 数据库中的E—R图画法
  13. 如何将手机中Word文档转换成PDF
  14. NLP学习-1--语料预处理与向量空间,语料格式
  15. 计算机毕设项目 python微信公众平台机器人
  16. Windows - 文件系统 学习/收集
  17. VMR论文visualization实验总结
  18. 直播界很火的无线领夹麦克风快充方案 Type-C接口 PD快充+无线麦克风可同时进行
  19. 贪心(greedy)
  20. linux中出现不在 sudoers 文件中。此事将被报告的解决方法

热门文章

  1. 装备仿真模拟推演训练系统软件
  2. [实用资料系列]注册表技术大全「二辛苦收集的注册表大全」
  3. 图片记录:2008年12月4日夜晚,暴风雪突袭烟台-上
  4. 0x7fffffff解析
  5. 与小雷粉-半初夏的聊天感悟
  6. czl蒻蒟的OI之路4
  7. 新年贺卡用python_新年贺卡生成器
  8. Youtube推荐系统论文-《Deep Neural Networks for YouTube Recommendations》-简单总结
  9. 肝了一晚上搞出来一个微信订阅号鉴黄机器人
  10. 【献血小常识】------- 献血者健康检查标准