学习C++.Primer.Plus 5 循环和关系表达式
- C++将赋值表达式的值定义为左侧成员的值
- 赋值操作符是自右向左结合的
cout.setf(ios:: boolalpha);//调用设置标记,命令cout输出true或false,而非1或0.
- 任何表达式加上分号都会成为语句,但反过来不一定成立:
int n;
顺序点:程序执行过程中的一个点,在这里,在进行下一步之前将确保对所有的副作用进行了评估。
完整表达式:不是另一个表达式的子表达式(没有任何表达式是它的父表达式)。比如下面的整个表达式是一个表达式,其中的两个子表达式都不是完整表达式:
y = ( + x++) + ( + x++);//完整表达式结束后对所有副作用进行了评估,在子表达式(4+ x++)完成后并不一定对x进行了评估,结果有歧义,因此应避免这么写。
- 任何完整的表达式末尾都是一个顺序点。
- 可以使用递增/减操作字符型。
- 前缀递增/减 和 解除引用 优先级相同(自右到左进行结合), 后缀递增/减 要高于 解除引用。
*++pt;//pt 指针先自+1再解除引用,指针改变
++*pt;//pt指针解除引用后的值自加1
(*pt)++;//pt指针解除引用后的值自加1
*pt++;//pt 指针先自+1再解除引用,指针改变 - ","操作符允许将两个表达式放到C++只允许放一个表达式的地方。
- ","操作符是一个顺序点,且","表达式的值是表达式第二部分的值。
- ","操作符在所有操作符中的优先级最低。
- 如果在for循环内声明内部变量tmp,则每次循环都会被分配和释放,这比在循环前声明要慢一些。
- strcmp(str1, str2)比较系统顺序:C++将C-风格字符串视为地址,因此不能用“==”比较。1在2后,>0。
- 如果比较的两个字符串对象中至少有一个string对象,则可以使用"==","!="。
- string类对象不使用空白来标记末尾, C-风格和char数组表示的字符串用空白标记。
- 计时函数:在头文件ctime中,clock_t clock();
符号常量CLOCKS_PER_SEC:每秒包含的clock_t数。
- 类型别名:C++中声明类型别名的两种方法:
1.#define mynamedchar char;会出现下面的问题:
#define floatPointer float *;
floatPointer pa, pb;//编译时会转换成float * pa, pb。只声明了一个指针
2.typedef char mychar mynamedchar;不会出现上述问题。
- 文件尾条件
windows使用cntr + Z 和 回车键 模拟文件尾
检测到EOF时,cin将 eofbit 和 failbit 设置为1。并且会停止输入,此时可以调用cin.clear()恢复输入。
cin.eof()---->最后一次的eofbit为1就返回true
cin.fail()---->最后一次的eofbit 和 failbit 都1才返回true
- cin.get(char)返回一个cin对象,istream提供了一个将istream对象转换为bool的函数。当cin出现在需要bool 的时候,会自动转换成bool,读取成功返回true,失败返回false。
- cin.get()返回输入中的下一个字符,将字符编码作为int值返回,可以使用cout.put(char)函数输出字符。
- 达到EOF时cin.get()将返回EOF(iostream中定义的,一般为-1);而cin.get(char)则不会将该特殊值赋给char,因此不会导致cin.get()赋值的类型问题。
学习C++.Primer.Plus 5 循环和关系表达式的更多相关文章
- 《C++ Primer Plus》读书笔记之三—循环与关系表达式
第五章 循环与关系表达式 1.表达式是值或者值与操作符的结合,每个C++表达式都有值.表达式到语句的转换只要加一个分号就可以完成.但是,反过来,从语句中删除分号,并不一定能将它转化成表达式. 2.前缀 ...
- C++ primer plus读书笔记——第5章 循环和关系表达式
第5章 循环和关系表达式 1. cout.setf(ios_base::boolalpha); cout << (100 > 3) << endl;将输出true,而不是 ...
- 《C++ Primer Plus》第5章 循环和关系表达式 学习笔记
C++提供了3种循环: for 循环. while 循环 和 do while 循环 .如果循环测试条件为 true 或非零,则循环将重复执行一组指令: 如果测试条件为 false 或 0 , 则结束 ...
- [C++ Primer Plus] 第5章、循环和关系表达式(二)课后习题
1.编写一个要求用户输入两个整数的程序,将程序将计算并输出这两个整数之间(包括这两个整数)所有的整数的和.这里假设先输入较小的整数,例如如果用户输入的是2和9,则程序将指出2-9之间所有整数的和为44 ...
- [C++ Primer Plus] 第5章、循环和关系表达式(一)程序清单——指针自加减优先级
程序5.4 #include<iostream> using namespace std; ; void main() { long long factorials[Size]; fact ...
- C++ Primer Plus读书笔记(五)循环和关系表达式
1.前缀运算符的优先级是从右到左,例如: 1 *++p; //这句话的含义是先对p进行++,再取* 2.循环 c++11新增了一种循环方式,有点和python类似,如下: 1 array<int ...
- c++primerplus(第六版)编程题——第5章(循环和关系表达式)
声明:作者为了调试方便,每一章的程序写在一个工程文件中,每一道编程练习题新建一个独立文件,在主函数中调用,我建议同我一样的初学者可以采用这种方式,调试起来会比较方便. (具体方式参见第3章模板) 1. ...
- 重拾c++第三天(5):循环和关系表达式
1.改变步长 ;i<;i=i+) 2.*与++优先级相同,从右向左 3.strcmp函数比较两个字符串,=0两个相同,><0 ----> str1><str2 4. ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
随机推荐
- 区别和详解:js中call()和apply()的用法
1.关于call()和apply()的疑点: apply和call的区别在哪里 什么情况下用apply,什么情况下用call apply的其他巧妙用法(一般在什么情况下可以使用apply) 2.语法和 ...
- 文件件监听器,android系统拍照功能调用后删除系统生成的照片
先说说要实现的功能: android调用系统拍照功能实时 预览 删除 上传 保存 (用户不能再本地文件夹中看到拍的照片) 再说说遇到的问题: 1.调用系统拍照在系统自带的拍照文件夹中生成一张随机命名图 ...
- C#编写抽奖问题
输入每个人的中奖号码,进行滚动显示 //清屏 //随即一个索引 // 根据索引打印 //等待0.1秒 Console.Write("请输入参与者人数:&q ...
- .NET/ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)
阅读目录: 1.开篇介绍 2.System.Web.Optimization 组件 3.System.Web.Optimization 组件基本原理 4.扩展自定义类型静态文件 1]开篇介绍 这篇文章 ...
- java web 中的servlet讲解
首先,解释一下解释一下什么是servlet?说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化.初始化.处理请求以及服务结束.这个生存期由javax.servlet ...
- 初步认识Hive
初步认识Hive hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行.其优点是学习 ...
- Java api 入门教程 之 JAVA的Date类与Calendar类
在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理. 一.这里简单介绍一下Date类的使 ...
- C++STL - vector
对vector进行一些总结. 一些需要注意的知识点: 1.标准库vector表示对象的集合, 其中所有对象的类型都相同.因为vector中容纳着其他对象,所以也称作容器. 2.C++语言既有类模板(c ...
- C# ADO.NET编写简单的图书馆管理软件
使用软件: Microsoft SQL Server 2012 Microsoft Visual Studio 2012 本文地址: http://www.cnblogs.com/go2bed/ 参考 ...
- Neutron分析(4)—— neutron-dhcp-agent
一.概述 neutron dhcp为租户网络提供DHCP服务,即IP地址动态分配,另外还会提供metadata请求服务. 3个主要的部件: DHCP agent scheduler:负责DHCP ag ...