C++ primer plus读书笔记——第5章 循环和关系表达式
第5章 循环和关系表达式
1. cout.setf(ios_base::boolalpha); cout << (100 > 3) << endl;将输出true,而不是1。
2. 递增运算符++和递减运算符--
前缀:修改后使用 后缀:使用后修改
Y = (4 + x++) + (6 + x++);
C++没有规定是在计算每个子表达式之后将x的值递增,还是在整个表达式计算完毕之后才将x的值递增,有鉴于此,应该避免使用这样的表达式。
3. 递增/递减运算符和指针P135
优先级:后缀 > 前缀 > *
前缀递增、前缀递减和解除引用运算符的优先级相同,以从右向左的方式进行结合。后缀递增和后缀递减的优先级相同,但比前缀运算符的优先级高,这两个运算符以从左到右的方式进行结合。
4. 逗号表达式是一个顺序点,它确保先计算第一个表达式,然后计算第二个表达式。
i = 20, j = 2 * I;//i为20,j为40
C++规定,逗号表达式的值为第二部分的值。例如上述表达式的值为40。
逗号表达式的优先级最低。因此cata = 17, 240;被解释为(cata = 17), 240;也就是cata的值被设置为17,240不起作用。
5. 所有大写字母的编码都比小写字母小,虽然关系运算符不能用来比较C风格字符串,但却可以用来比较字符,因为字符实际上是整形。
6. 延时程序:
#include <iostream>
#include <ctime>
int main()
{
using namespace std;
cout << "Enter the delay time, in seconds: ";
float secs;
cin >> secs;
clock_t delay = secs * CLOCKS_PER_SEC;
cout << "Starting\a\n";
clock_t start = clock();
while (clock() - start < delay);
cout << "Done\a\n";
return 0;
}
7. typedef声明类型别名。
8. C++11增加了一种循环:基于范围(range-based)的for循环。对数组(或容器类,如vector和array)都适用。
double prices[5] = {4.99, 10.99, 6.87, 7.99, 8.49};
for (double x : prices)
cout << x << std::endl;
如果要修改数组的元素,需要使用不同的循环变量语法:
for (double &x : prices)
x = x * 0.80;
此外,还可以使用基于范围的for循环和初始化列表。
9. cin.get(ch)函数读取输入中的下一个字符,即使它是空格。头文件iostream将cin.get(ch)的参数声明为引用类型,因此该函数可以修改其参数的值。
10. Windows 7系统可以按下ctrl + Z和回车键来模拟EOF条件。检测到EOF后,则cin将两位(eofbit和failbit)都设置为1。可以通过成员函数eof()或fail()来查看eofbit是否被设置;如果检测到EOF,则cin.eof()将返回bool值true,否则返回false。
11. 目前接触到cin.get三个版本:
cin.get(name, size)接受两个参数:字符串数组名,读取字符数;
cin.get()不接受任何参数;
cin.get(ch)接受一个char参数。
12. 如何理解while(cin.get(ch))?
istream类提供了一个可以将istream类对象(如cin)转换为bool值的函数;但cin出现在任何需要bool值的地方时,该转换函数被调用。所以while(cin)比!cin.fail()或!cin.eof()更通用,因为它可以检测到其他失败原因,如磁盘故障。
13. cin.get()的另一个版本,stdio.h中定义了getchar()(还有putchar())。当cin.get()函数到达EOF时,将没有可返回的字符,这时将返回一个用符号常量EOF表示的特殊值。这个常量是在iostream里定义的,通常EOF被定义为-1。
while(cin.get(ch))等价于while((ch = cin.get()) != EOF)
也就是说cin.get(ch)返回cin对象,而cin.get()返回字符编码0值。
C++ primer plus读书笔记——第5章 循环和关系表达式的更多相关文章
- C++ Primer Plus读书笔记(五)循环和关系表达式
1.前缀运算符的优先级是从右到左,例如: 1 *++p; //这句话的含义是先对p进行++,再取* 2.循环 c++11新增了一种循环方式,有点和python类似,如下: 1 array<int ...
- 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. 友元类的所有方法都可以访问原有类的私有成员和保护成员.另外,也可以做更严格的限制,只将特定的成员函数指定为另一个类的友元.哪些函数.成员函数.或类为友元是由类定义的, ...
随机推荐
- 技术分享PPT整理(一):Bootstrap基础与应用
最近在复习的时候总感觉有些知识点总结过,但是翻了一下博客没有找到,才想起来有一些内容是放在部门的技术分享里的,趁这个时候跳了几篇相对有价值的梳理一下,因为都是PPT,所以内容相对零散,以要点和图片为主 ...
- matplotlib常规使用方法
1,指定图片大小和像素 Python绘图问题:Matplotlib中指定图片大小和像素 2,绘图命令的基本架构及其属性设置 绘图与可视化 3,python基础语法(二)--- plt的一些函数使用 p ...
- RabbitMQ 入门 (Go) - 3. 模拟传感器,生成数据并发布
现在,我们需要模拟传感器,生成数据,并发布到 RabbitMQ. 建立传感器项目 在 GOPATH src 下建立文件夹 sensors,使用 go mod init 初始化,并创建 main.go. ...
- Kubernetes中Deployment部署故障排除
Kubernetes中Deployment部署故障排除 字符型思维导图 排查pod状态(带标签):kubectl get pods,是否有等待处理的pod? 是?kubectl describe po ...
- [搜索]P1088 火星人
火星人 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉 ...
- Python使用sql语句对mysql数据库多条件模糊查询
1 def find_worldByName(c_name,continent): 2 print(c_name) 3 print(continent) 4 sql = " SELECT * ...
- java面试-死锁产生、定位分析和修复
死锁发生:两个或多个线程之间,互相持有对方需要的锁,而永久处于阻塞状态 一.手写死锁代码: public class DeadLockSample extends Thread { private S ...
- H5 端 rem 适配方案与 viewport 适配
H5 端 rem 适配方案与 viewport 适配 rem rem 是 CSS3 新增的一个相对单位(root em,根 em) 只根据当前页面 HTML 页面的 font-size 设置,如果根目 ...
- 「HTML+CSS」--自定义加载动画【015】
前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...
- C#与Python交互方式
前言: 在平时工作中,需求有多种实现方式:根据不同的需求可以采用不同的编程语言来实现.发挥各种语言的强项 如:Python的强项是:数据分析.人工智能等 .NET 开发桌面程序界面比Python更简单 ...