(3)C++复合类型
存储数据时必须跟踪的三个属性:信息储存在何处,存储的值,存储的类型
一、数组
#include <iostream>
using namespace std;
int main()
{
//初始化赋值1
short a[];
a[] = ;
a[] = ;
a[] = ; //始化赋值2
short b[] = { ,, }; //始化赋值3,自己计算个数
short c[] = { ,, }; //没赋值的位置会初始化为默认0
short d[] = { }; //始化赋值4,省略等号
int e[] { ,, }; cout << e[] <<endl;
}
二、字符串
1.连续字符组成德字符串
C语言风格,末尾要加 \0
char a[] = { 'd','f','e','\0' };
如果末尾不加 \0 则继续打印内存随后的各个字节,直到遇见 空字符为止
char a[] = { 'd','f','e','\0' ,'n' };
cout << a <<endl;//如果打印a 得到dfe
cout << a[] << endl;//可以得到 n
2.字符串常量
char a[] = "abcde";
cout << a <<endl;//abcde
cout << sizeof(a) << endl;//数组的长度 6
cout << strlen(a) << endl;//字符串的长度 5
a[] = '\0';
cout << a << endl;//如果中间插入空字符,则程序只打印之前的字符
3.输入
(1)
int main()
{
char name[];
cin >> name; //cin使用空白(空格、制表符、换行)来确定字符串的结束为止,并自动在结尾添加空字符
cout << name << endl;//如果输入中加了空格,他只会打印之前的部分
}
而且cin不能防止输入多出20,超出后程序会引发异常
(2)getline()可以每次读一行
cin.getline(name,);//读取到指定为止,并且不受空白影响
三、string类
C++98标准添加了string类来扩展C++库
使用string 必须在头文件中包含
#include <iostream>
#include<string> //添加
using namespace std;
int main()
{
string str = "abc";
cout << str << endl;
}
四、结构
(1)
#include <iostream>
#include<string>
using namespace std;
int main()
{
struct Student
{
int age;
string name;
};
//初始化
Student stu = { ,"tom" };//等号可以省略
cout << stu.age << endl;
}
(2)结构数组
//初始化
Student stu[]{ {,"tom"},{,"mali"} };
//调用
cout << stu[].age << endl;
(3)结构中的位字段
指定占用特定位数的结构成员,使得创建与某个硬件设备上的寄存器对应的数据结构非常方便
加冒号
struct Card
{
int shanqu : ;//占用4bit
bool b : ;//
};
位字段通常用在低级编程中
(4)结构体指针
Student* p = &stu;
cout << p->age << endl;
五、共用体
VC++ 不能用此类型????实例化时报错
union Student1
{
int age;
string name;
};
六、枚举
enum Season
{
Spring, Summer, Autumn, Winter
};
Season season;
season = Spring;
可以赋值整数,默认为0
enum Season
{
Spring=, Summer=, Autumn=, Winter=
};
Season season;
season = Spring;
cout << season << endl;
七、指针和自由存储空间 八、指针、数组和指针算术
篇幅长,合并转移到新章 https://www.cnblogs.com/buchizaodian/p/11516266.html
九、类型组合
十、数组的替代品
1.模板类Vector
2.模板类array
(3)C++复合类型的更多相关文章
- 第54讲:Scala中复合类型实战详解
今天学习了scala的复合类型的内容,让我们通过实战来看看代码: trait Compound_Type1trait Compound_Type2class Compound_Type extends ...
- 实现在GET请求下调用WCF服务时传递对象(复合类型)参数
WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...
- go语言 类型:基础类型和复合类型
Go 语言中包括以下内置基础类型:布尔型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮点型:floa ...
- C语言中的复合类型
复合类型 一.掌握的类型 1. 指针数组 int * arr[10]; //arr是一个数组,有10个元素,每个元素都是一个指针,即arr是一个指针数组 int a,b,c,d; arr[0] = & ...
- 学习C++.Primer.Plus 4 复合类型
本章介绍的有复合类型有: 数组. 字符串. 结构. 共用体. 指针 数组: 声明数组时数组长度必须为常量(或const). 只有初始化时可以用“=”,其它时候均不可以给数组直接赋值,除了赋值的元素以外 ...
- C++Primer快速浏览笔记-复合类型
C++Primer2.3节介绍了两种复合类型:引用和指针 1.引用 引用并非对象,它只是为一个已经存在的对象所起的别名. 一旦初始化完成,引用将和它的初始值对象一直绑定在一起,不能重新绑定到另一个对象 ...
- Scala 深入浅出实战经典 第54讲:Scala中复合类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
- struts复合类型传值(对象传值)
01:导包,配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version ...
- c++学习总结--复合类型,const。
复习c++,有必要对一些东西做一下笔记,方便以后学习,如有问题,欢迎提出. 首先,最常用两种复合类型应该是引用和指针. 所谓复合类型,是在基本类型基础(如:int)上定义的类型. 引用是c++的一个复 ...
- postgresql 函数 参数为复合类型
postgresql没有存储过程,但是函数功能很强大. 在近期开发的电商管理平台中,对于产品的类目管理,设计时有个属性字段,设为字符数组,但是EF不支持数组的操作,所以在添加和修改类目时,需要对属性的 ...
随机推荐
- git 小错误
(一)在本地直接修改文件,提交后出现(master|REBASE 1/2).由于文件冲突所以导致各种报错. 在git pull --rebase origin master后 error: Pulli ...
- 剑指offer---4、序列化二叉树
剑指offer---4.序列化二叉树 一.总结 一句话总结: 1. 对于序列化:使用前序遍历,递归的将二叉树的值转化为字符,并且在每次二叉树的结点不为空时,在转化val所得的字符之后添加一个' , ' ...
- tomcat正常启动输入localhost:8080显示404错误
找了半天才解决. 看这个贴子: https://www.cnblogs.com/lovelanglangyou/p/7410937.html 简而言之: 需要修改eclipse中的server配置,e ...
- codeforces 584E Anton and Ira [想法题]
题意简述: 给定一个$1$到$n(n<=2000)$的初始排列以及最终排列 我们每次可以选取位置为$i$和$j$的 并交换它们的位置 花费为$ |i-j| $ 求从初始状态变换到末状态所需最小花 ...
- HDU 3466 Proud Merchants(01背包)
题目链接: 传送门 Proud Merchants Time Limit: 1000MS Memory Limit: 65536K Description Recently, iSea wen ...
- Oracle学习笔记<5>
组函数(多值函数) 数据库中函数的分类:1)单值函数 Single Rows Functions 特点:n条数据参与函数处理,最终得到n条结果.2)多值函数(组函数) Multiple Rows Fu ...
- luoguP3258 [JLOI2014]松鼠的新家 题解(树上差分)
P3258 [JLOI2014]松鼠的新家 题目 树上差分:树上差分总结 #include<iostream> #include<cstdlib> #include<c ...
- spring静态资源配置
优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...
- Linux系统分辨率设置
linux 设置分辨率 如果你需要在linux上设置显示屏的分辨率,分两种情况:分辨率模式存在与分辨率模式不存在,具体如下. 1,分辨率模式已存在 1)如何查询是否存在: 图形界面:在System S ...
- go语言从例子开始之Example16.函数递归
Go 支持 递归.这里是一个经典的阶乘示例. Example: package main import "fmt" func fact(n int) int{ //先设置退出条件 ...