第3章 处理数据

1. C++对于变量名称的长度没有限制,ANSI C只保证名称中的前63个字符有意义(前63个字符相同的名称被认为是相同的,即使第64个字符不同)。

2. 对类型名(int)使用sizeof运算符时,应将名称放在括号中,但对变量名(n_short)使用该运算符时,括号是可选的。

3. int owls = 101; //传统的C语言初始化方式

int wrens(432); //C++增加的初始化方式

4. 与int类型不同的是,char在默认情况下既不是没有符号,也不是有符号。是否有符号由C++实现决定。如果char有某种特定的行为对您来说很重要,则可以显示地将类型设置为signed char 或 unsigned char。

5. 在进行国际编程或使用Unicode或ISO10646时,程序需要处理的字符集可能无法用一个8位的字节char表示,可以使用wchar_t。wchar_t是一种整型,具体类型取决于实现,有可能是unsigned short 或 int等。

Cin和cout将输入和输出看作是char流,因此不适于用来处理wchar_t类型。iostream头文件提供了类似的工具wcin和wcout,用于处理wchar_t流。另外,可以通过加上前缀L来指示宽字符常量和宽字符字符串。

wchar_t bob = L'P';

wcout << L"tall" << endl;

6. 在进行字符串编码时,如果有特定长度和符号特征的类型,将会很有帮助,而类型wchar_t的长度和符号随实现而异。因此C++11增加了类型char16_t和char32_t,两者都是无符号的,前者长16位,后者长32位。C++使用前缀u表示char16_t字符常量和字符串常量,并使用前缀U表示char32_t常量。

7. const比#define好的原因:首先,他能够明确指定类型。其次,可以使用C++的作用域规则将定义限制在特定的函数或文件中。第三,可以将const用于更复杂的类型,如数组和结构。ANSI C的const限定符是从C++借鉴来的。

8. C++的浮点表示法有两种:第一种直接使用标准的小数点,第二种使用E表示法。既可以使用E也可以使用e,指数可以是正数也可以是负数。数字中不能有空格,因此7.2 E6非法。

9. 浮点常量

默认情况下,浮点常量为double类型,如果希望常量为float类型,请使用F或f后缀。对于long double类型,可使用l或L后缀。

1.234f    //float常量

2.45E20F  //float常量

2.3453E28 //double常量

2.2L      //long double常量

10. (typename) value //c语言强制类型转换

typename (value) //C++强制类型转换,使强制类型就像是函数调用,这样对内置类型的强制类型转换就像是为用户定义的类设计的类型转换。

11. C++11新增加了一个工具,auto让编译器能够根据初始值的类型推断变量的类型。

std::vector<double> scores;

std::vector<double>::iterator pv = scores.begin();

C++11允许这样写:

std::vector<double> scores;

auto pv = scores.begin();

C++ primer plus读书笔记——第3章 处理数据的更多相关文章

  1. C primer plus 读书笔记第十一章

    本章标题是字符串和字符串函数.主要是了解和字符串有关的函数. 1.字符串表示和字符串I/O 主要内容:字符串常量和字符串数组的初始化,对比了指针和字符串. 其中要注意的是,数组初始化是从静态存储区把一 ...

  2. C primer plus 读书笔记第六章和第七章

    这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...

  3. C primer plus 读书笔记第五章

    本章的标题是运算符,表达式和语句.主要研究如何处理数据. 示例代码展示了一个使用简单的while循环的代码,难度不大. 下面简单介绍本章的基本概念. 1.基本运算符. 基本运算符有:赋值运算符(C语言 ...

  4. C primer plus 读书笔记第四章

    本章的标题是字符串的格式化输入/输出,重点介绍输入和输出. 本章的第一段示例代码和上一张示例代码很相近,代码就不贴了,新出现的特性是使用了一个数组来存放字符串,C预处理命令和strlen()函数. 下 ...

  5. C primer plus 读书笔记第三章

    本章的标题是数据和C,主要内容是介绍数据类型中的整数类型和浮点数类型. 本章的第一段代码 #include <stdio.h> int main(void) { float weight; ...

  6. C++ primer plus读书笔记——第17章 输入、输出和文件

    第17章 输入.输出和文件 1. 对键盘进行输入缓冲可以让用户在将输入传输给程序之前返回并更正.C++程序通常在用户按下回车键时刷新输入缓冲区. 2. 一些I/O类 streambuf类为缓冲区提供了 ...

  7. C++ primer plus读书笔记——第16章 string类和标准模板库

    第16章 string类和标准模板库 1. string容易被忽略的构造函数: string(size_type n, char c)长度为n,每个字母都为c string(const string ...

  8. C++ primer plus读书笔记——第15章 友元、异常和其他

    第15章 友元.异常和其他 1. 友元类的所有方法都可以访问原有类的私有成员和保护成员.另外,也可以做更严格的限制,只将特定的成员函数指定为另一个类的友元.哪些函数.成员函数.或类为友元是由类定义的, ...

  9. C++ primer plus读书笔记——第14章 C++中的代码重用

    第14章 C++中的代码重用 1. 使用公有继承时,类可以继承接口,可能还有实现(基类的纯虚函数提供接口,但不提供实现).获得接口是is-a关系的组成部分.而使用组合,类可以获得实现,但不能获得接口. ...

随机推荐

  1. Spring 声明式事务与编程式事务详解

    本文转载自IBM开发者论坛:https://developer.ibm.com/zh/articles/os-cn-spring-trans 根据自己的学习理解有所调整,用于学习备查. 事务管理对于企 ...

  2. PTA 有序数组的插入

    6-5 有序数组的插入 (20 分)   本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementTy ...

  3. [go-linq]-Go的.NET LINQ式查询方法

    关于我 我的博客|文章首发 开发者的福音,go也支持linq了 坑爹的集合 go在进行集合操作时,有很不舒服的地方,起初我真的是无力吐槽,又苦于找不到一个好的第三方库,只能每次写着重复代码.举个栗子 ...

  4. .Net Core发布到Linux下验证码失效处理方案详解

    .net Core 部署到在 CentOS7下后,验证码打不开,报The type initializer for 'Gdip' threw an exception.异常 运行含图片处理时发生异常: ...

  5. [.net] 关于Exception的几点思考和在项目中的使用(二)

    本文链接: https://www.cnblogs.com/hubaijia/p/about-exceptions-2.html 系列文章: 关于Exception的几点思考和在项目中的使用(一) 关 ...

  6. kali 2019-4中文乱码解决方法

    1.更换阿里源 编辑源,apt-get update && apt-get upgrade && apt-get clean ,更新好源和更新软件 #阿里云deb ht ...

  7. 体渲染——Volume

    基本概念   体渲染(Volume),是绘制类似烟.雾.云的效果.这种渲染和之前的表面渲染不同,光线可以在物体内部进行散射. 体渲染的主要特点    1. 可以在物体内部散射.    2. 从进入vo ...

  8. 「最强」Lettuce 已支持 Redis6 客户端缓存

    Redis 客户端缓存 缓存的解决方案一般有两种: [L1] 内存缓存(如 Caffeine.Ehcache) -- 速度快,进程内可用,但重启缓存丢失,出现缓存雪崩的问题. [L2]集中式缓存(如 ...

  9. @Scheduled注解

    1 概述 @Scheduled注解是spring boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行.注意需要配合@EnableScheduling使用,配 ...

  10. 数栈运维实例:Oracle数据库运维场景下,智能运维如何落地生根?

    从马车到汽车是为了提升运输效率,而随着时代的发展,如今我们又希望用自动驾驶把驾驶员从开车这项体力劳动中解放出来,增加运行效率,同时也可减少交通事故发生率,这也是企业对于智能运维的诉求. 从人工运维到自 ...