1,复合类型主要包含:数组、结构、联合、枚举、类、指针、引用等。

2,数组。长度必须确定。即编译阶段,数组的长度就得确定好。所以只能使用常量(#define、const)声明数组长度。如果使用变量声明数组长度,编译器就不知道要分配多少的内存空间。

3,typeName arrayName[arraySize]。数组下标从0开始。

4,数组初始化规则:

c++:数组名是数组首元素的地址,不能将一个数组直接赋值给另一个数组。并且数组的初始化可以使用列表初始化,赋值只能通过一个元素一个元素赋值。如:

上面三种都是可以初始化的方式。hotelTips的前两个元素为5.0,2.5,后面三个元素为0;totals的所有元素为0;things一个四个元素,分别为1,5,3,8.数组元素个数通过编译器计算得到。

c++11规则:列表初始化。不允许缩窄变化。

5,字符串:

c风格的字符串、string类。

c风格字符串:字符数据,后加空字符\0。空字符\0的ascii码为0.如下图: 

字符数组不一定是c风格字符串,c风格字符串一定是字符数组。

6,sizeof关键字获取变量的内存空间大小。头文件cstring中有个strlen函数,能获取字符串长度。即空字符\0前面的字符个数。不包括空字符。所以如果一个字符串m。需要至少strlen(m)+1的数组空间来存储。

7,

上图,左边时源码文件,右边是程序运行结果。

由于键盘不能输入空字符\0,所以c++使用空白符(空格、tab键、换行符)来表示字符串结束。我们输入Alistair Dreeb。IO输入缓冲区包含Alistair Dreeb,当输入name字符数组时,碰到空格就结束输入。IO输入缓冲区还剩下Dreeb。下一次输入(cin>>dessert),程序直接读取Dreeb,而不需要用户再输入数据。

8,cin.getline()。为解决上面的问题,需要调用cin.getline()每次读取一行数据。

cin.get().与上面的方法类似,唯一的区别是,前者会读取一行,并将换行符丢弃。而后者不会将换行符丢弃。

可以通过这种方式读取一行,并将换行符丢弃。(这里使用重载思想):

9,

左边是源代码,中间是程序输出,最后是解决途径。

之所以address没有机会输入,是因为程序读入1966后,还有一个换行符留在输入缓冲区。当读入address,直接将换行符认为是空行读入。可以通过最后的方式解决此问题。即将空行通过cin.get()读入。

10,string类:

 

C++PrimerPlus第6版 第四章——复合类型的更多相关文章

  1. C++ Primer Plus 第四章 复合类型 学习笔记

    第四章 复合类型 1. 数组概述 1.1 数组的定义 数组(array)是一种数据格式,能够存储多个同类型的值.每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素. 数组声明的三 ...

  2. C++ primer plus读书笔记——第4章 复合类型

    第4章 复合类型 1. 如果将sizeof运算符用于数组名,得到的将是整个数组中的字节数. 2. 如果对数组的一部分进行初始化,则编译器把其他元素设置为0.因此,将数组中的所有元素初始化为0,只要显式 ...

  3. Java 线程第三版 第四章 Thread Notification 读书笔记

    一.等待与通知 public final void wait() throws InterruptedException      等待条件的发生. public final void wait(lo ...

  4. C#高级编程第11版 - 第四章 索引

    [1]4.2 继承的类型 1.C#不支持类的多继承,但它支持一个接口继承自多个接口. 2.单继承:单继承允许一个类继承自另外一个基类,C#支持. 3.多级继承:多级继承允许创建一个类继承自它的父类,而 ...

  5. MVC5+EF6 简易版CMS(非接口) 第四章:使用业务层方法,以及关联表解决方案

    目录 简易版CMS后台管理系统开发流程 MVC5+EF6 简易版CMS(非接口) 第一章:新建项目 MVC5+EF6 简易版CMS(非接口) 第二章:建数据模型 MVC5+EF6 简易版CMS(非接口 ...

  6. ROS机器人程序设计(原书第2版)补充资料 (肆) 第四章 在ROS下使用传感器和执行器

    ROS机器人程序设计(原书第2版)补充资料 (肆) 第四章 在ROS使用传感器和执行器 书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第四 ...

  7. 《C++ Primer》 第四版 第7章 函数

    <C++ Primer> 第四版 第7章 函数 思维导图笔记 超级具体.很具体,图片版,有利于复习查看 http://download.csdn.net/detail/onlyshi/94 ...

  8. 计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具

    计算机图形学 opengl版本 第三版------胡事民 第四章  图形学中的向量工具 一   基础 1:向量分析和变换   两个工具  可以设计出各种几何对象 点和向量基于坐标系定义 拇指指向z轴正 ...

  9. 《利用Python进行数据分析·第2版》第四章 Numpy基础:数组和矢量计算

    <利用Python进行数据分析·第2版>第四章 Numpy基础:数组和矢量计算 numpy高效处理大数组的数据原因: numpy是在一个连续的内存块中存储数据,独立于其他python内置对 ...

随机推荐

  1. MyBatis框架——关系映射(一对多、多对多、多对一查询)

    关系映射 一.映射(多)对一.(一)对一的关联关系 1).使用列的别名 ①.若不关联数据表,则可以得到关联对象的id属性 ②.若还希望得到关联对象的其它属性.则必须关联其它的数据表 1.创建表: 员工 ...

  2. django模板(过滤器)

    -------------------django内建的过滤器-------------------1.add 使用形式为:{{ value | add: "2"}} 意义:将va ...

  3. php工具方法

    备忘常用方法 1.寻找子栏目(权限\菜单列表...) function getSon($list,$pid){ $arr=''; foreach ($list as $k=>$v){ if($v ...

  4. 移动webapp的那些bug

    bug持续更新中... 测试浏览器 Chrome: 61.0.3163.73 Safari: 10.0(IOS 10.3.3) Github: webapp-bugs 1. IOS overflow: ...

  5. Java学习记录 : 画板的实现

    接触java不满一个月,看厚厚的java入门简直要醉,故利用实例来巩固所学知识. 画板的实现其实从原理来说超级简单,可能一会儿就完成了. 但作为一名强迫症患者,要实现和win下面的画板一样的功能还是需 ...

  6. (八)、vpn-pptp部署

    中小型规模网站集群架构:VPN-PPTP : 矮哥linux运维群:93324526 前言: 你想管理机器吗? 你想更安全吗? 请安装VPN吧 部署 1.查看系统是否支持PPP [root@oldbo ...

  7. 转:【深入Java虚拟机】之五:多态性实现机制——静态分派与动态分派

    转载请注明出处:http://blog.csdn.net/ns_code/article/details/17965867   方法解析 Class文件的编译过程中不包含传统编译中的连接步骤,一切方法 ...

  8. 201521123084 《Java程序设计》第5周学习总结

    第5周-继承.多态.抽象类与接口 1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点. 2. 书面作业 1. 代码阅读:Child压缩包内源代码 1.1 com.parent包中C ...

  9. 团队作业八——第二次团队冲刺(Beta版本)第3天

    一.每个人的工作 (1) 昨天已完成的工作 对界面进行完善,并增加简单界面(包含简单界面内含的界面),简单模式与复杂模式的选择界面. (2) 今天计划完成的工作 做一下用户注册的功能和登录功能. (3 ...

  10. 201521123072《java程序设计》第七周总结

    201521123072<java程序设计>第七周总结 标签: java 1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源 ...