存储数据时必须跟踪的三个属性:信息储存在何处,存储的值,存储的类型

一、数组

#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++复合类型的更多相关文章

  1. 第54讲:Scala中复合类型实战详解

    今天学习了scala的复合类型的内容,让我们通过实战来看看代码: trait Compound_Type1trait Compound_Type2class Compound_Type extends ...

  2. 实现在GET请求下调用WCF服务时传递对象(复合类型)参数

    WCF实现RESETFUL架构很容易,说白了,就是使WCF能够响应HTTP请求并返回所需的资源,如果有人不知道如何实现WCF支持HTTP请求的,可参见我之前的文章<实现jquery.ajax及原 ...

  3. go语言 类型:基础类型和复合类型

    Go 语言中包括以下内置基础类型:布尔型:bool整型:int int64 int32 int16 int8 uint8(byte) uint16 uint32 uint64 uint浮点型:floa ...

  4. C语言中的复合类型

    复合类型 一.掌握的类型 1. 指针数组 int * arr[10]; //arr是一个数组,有10个元素,每个元素都是一个指针,即arr是一个指针数组 int a,b,c,d; arr[0] = & ...

  5. 学习C++.Primer.Plus 4 复合类型

    本章介绍的有复合类型有: 数组. 字符串. 结构. 共用体. 指针 数组: 声明数组时数组长度必须为常量(或const). 只有初始化时可以用“=”,其它时候均不可以给数组直接赋值,除了赋值的元素以外 ...

  6. C++Primer快速浏览笔记-复合类型

    C++Primer2.3节介绍了两种复合类型:引用和指针 1.引用 引用并非对象,它只是为一个已经存在的对象所起的别名. 一旦初始化完成,引用将和它的初始值对象一直绑定在一起,不能重新绑定到另一个对象 ...

  7. Scala 深入浅出实战经典 第54讲:Scala中复合类型实战详解

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...

  8. struts复合类型传值(对象传值)

    01:导包,配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version ...

  9. c++学习总结--复合类型,const。

    复习c++,有必要对一些东西做一下笔记,方便以后学习,如有问题,欢迎提出. 首先,最常用两种复合类型应该是引用和指针. 所谓复合类型,是在基本类型基础(如:int)上定义的类型. 引用是c++的一个复 ...

  10. postgresql 函数 参数为复合类型

    postgresql没有存储过程,但是函数功能很强大. 在近期开发的电商管理平台中,对于产品的类目管理,设计时有个属性字段,设为字符数组,但是EF不支持数组的操作,所以在添加和修改类目时,需要对属性的 ...

随机推荐

  1. 测开之路四十五:Django之最小程序

    安装Django库 Django最小程序 import sysfrom django.conf.urls import urlfrom django.conf import settingsfrom ...

  2. leetcode-解题记录 771. 宝石与石头

    题目: 给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头. S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石. J 中的字母不重复,J 和 S中的所有字符 ...

  3. tesnsorflow 版本安装错了。 可以这样删除。

    conda env remove --name tensorflow tensorflow 版本安装错了. 可以这样删除. anaconda  安装tensorflow

  4. Git SSH连接方式配置

    如果使用ssh的方式管理,需要配置ssh key. 1.打开git bash命令窗口 2.生成ssh key ssh-keygen -t rsa -b 4096 -C "your_email ...

  5. 静态链表 C++版

    笔记静态链表的实现 #include "stdafx.h" #include<iostream> using namespace std; #define MAXSIZ ...

  6. C++中的类与封装

    1,类的组合: 1,类不是孤立存在的,类之间都会有一些关系,组合就是类的基本关系之一: 2,电脑一般而言是由 CPU.内存.主板.键盘和硬盘等部件组合而成: 3,学习电脑组装需要多少时间?学习电脑组装 ...

  7. 56.Decode String(解码字符串)

    Level:   Medium 题目描述: Given an encoded string, return it's decoded string. The encoding rule is: k[e ...

  8. BUUCTF CRYPTO部分题目wp

    对密码学了解不多,做一下熟悉熟悉 1,看我回旋踢 给的密文synt{5pq1004q-86n5-46q8-o720-oro5on0417r1} 简单的凯撒密码,用http://www.zjslove. ...

  9. css-目标伪类选择器:target的应用

    目标伪类选择器:target是众多CSS3众多 动态 伪类选择器中的一个,用来匹配锚点指向的元素,突出显示活动的HTML锚. <style> p:target{ border: 2px s ...

  10. C51的关键字解释

    参考原文 https://www.cnblogs.com/tianqiang/p/9251486.html [存储种类] 数据类型 [存储器类型] 变量名 [_at_] [地址]: _at_ 地址定位 ...