C++ primer plus读书笔记——第3章 处理数据
第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章 处理数据的更多相关文章
- C primer plus 读书笔记第十一章
本章标题是字符串和字符串函数.主要是了解和字符串有关的函数. 1.字符串表示和字符串I/O 主要内容:字符串常量和字符串数组的初始化,对比了指针和字符串. 其中要注意的是,数组初始化是从静态存储区把一 ...
- C primer plus 读书笔记第六章和第七章
这两章的标题是C控制语句:循环以及C控制语句:分支和跳转.之所以一起讲,是因为这两章内容都是讲控制语句. 第六章的第一段示例代码 /* summing.c --对用户输入的整数求和 */ #inclu ...
- C primer plus 读书笔记第五章
本章的标题是运算符,表达式和语句.主要研究如何处理数据. 示例代码展示了一个使用简单的while循环的代码,难度不大. 下面简单介绍本章的基本概念. 1.基本运算符. 基本运算符有:赋值运算符(C语言 ...
- C primer plus 读书笔记第四章
本章的标题是字符串的格式化输入/输出,重点介绍输入和输出. 本章的第一段示例代码和上一张示例代码很相近,代码就不贴了,新出现的特性是使用了一个数组来存放字符串,C预处理命令和strlen()函数. 下 ...
- C primer plus 读书笔记第三章
本章的标题是数据和C,主要内容是介绍数据类型中的整数类型和浮点数类型. 本章的第一段代码 #include <stdio.h> int main(void) { float weight; ...
- C++ primer plus读书笔记——第17章 输入、输出和文件
第17章 输入.输出和文件 1. 对键盘进行输入缓冲可以让用户在将输入传输给程序之前返回并更正.C++程序通常在用户按下回车键时刷新输入缓冲区. 2. 一些I/O类 streambuf类为缓冲区提供了 ...
- C++ primer plus读书笔记——第16章 string类和标准模板库
第16章 string类和标准模板库 1. string容易被忽略的构造函数: string(size_type n, char c)长度为n,每个字母都为c string(const string ...
- C++ primer plus读书笔记——第15章 友元、异常和其他
第15章 友元.异常和其他 1. 友元类的所有方法都可以访问原有类的私有成员和保护成员.另外,也可以做更严格的限制,只将特定的成员函数指定为另一个类的友元.哪些函数.成员函数.或类为友元是由类定义的, ...
- C++ primer plus读书笔记——第14章 C++中的代码重用
第14章 C++中的代码重用 1. 使用公有继承时,类可以继承接口,可能还有实现(基类的纯虚函数提供接口,但不提供实现).获得接口是is-a关系的组成部分.而使用组合,类可以获得实现,但不能获得接口. ...
随机推荐
- html Ajax连接.NET Ashx
Html代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <m ...
- The League of Sequence Designers Gym - 102460E
题目链接:https://vjudge.net/problem/Gym-102460E 思路:求: 题目当中给了一段伪代码算法,仔细一看发现它是不会记录负数情况,所以与正确答案会有误差,现在题目给定K ...
- ASP.NET Core分布式日志系统ELK实战演练
一.ELK简介 ELK是Elasticsearch.Logstash和Kibana首字母的缩写.这三者均是开源软件,这三套开源工具组合起来形成了一套强大的集中式日志管理平台. • Elastics ...
- Kubernetes 部署策略详解-转载学习
Kubernetes 部署策略详解 参考:https://www.qikqiak.com/post/k8s-deployment-strategies/ 在Kubernetes中有几种不同的方式发布应 ...
- Ansible-Playbook中的变量使用
变量名:仅能由字母.数字和下划线组成,且只能以字母开头 变量来源: 1.ansible all -m setup 远程主机的所有变量都可直接调用 #显示所有变量 ansible all -m setu ...
- [树形DP]战略游戏
战 略 游 戏 战略游戏 战略游戏 题目描述 Bob喜欢玩电脑游戏,特别是战略游戏.但是他经常无法找到快速玩过游戏的办法.现在他有个问题.他要建立一个古城堡,城堡中的路形成一棵树.他要在这棵树的结点上 ...
- elementui 表格 如何使操作中隐藏一个按钮
<el-table-column label="权限"min-width="100"> <template scope="scope ...
- .NET 6 Preview 3 中 ASP.NET Core 的更新和改进
原文:bit.ly/2Qb56NP 作者:Daniel Roth 译者:精致码农-王亮 .NET 6 预览版 3 现已推出,其中包括许多对新的 ASP.NET Core 改进.以下是本次预览版的新内容 ...
- odoo视图入门学习- tree视图的使用
上一篇内容:如何快速在odoo中创建自己的菜单 前言 上面的内容我们已经学会了如何去创建odoo的菜单,下面我们要学习的是odoo的基础视图tree视图,我们的目标是实现型号管理的列表页面 创建mod ...
- PYTHON工业互联网应用实战12—客户端操作
本章节我们将实现与admin里类似的列操作"下达"功能,演示客户端是如何实现操作功能,同时,演示也会强调一点,何时合并你的功能代码,避免相同功能使用不同的代码段来实现,在企业开发中 ...