1、递增和递减操作符
同一条语句对同一个值不要使用多次的递增递减操作。
如:x=2*x++*(3-++x);
在不同的操作系统中将产生不同的结果(规则“修改后使用”和“使用后修改”可能变得模糊不清)。
2、副作用点跟顺序点
副作用点(sideeffect):指的是就算表达式时对某些东西(如存储在变量中的值)进行了修改
顺序点(sequencepoint):是程序执行过程中的一个点,在这里,进入下一步之前将确保对所有的副作用都进行了评估。语句中的分号就是一个顺序点。任何完整的表达式末尾都是一个顺序点。
再看上述的例子,表达式2*x++不是一个完整表达式,因此,C++不保证x的值在计算2*x++后立刻加1。由于整条语句是一个表达式,所以,执行完这条语句后,x加了2。
3、前缀格式和后缀格式
前缀格式(++n)和后缀格式(n++),在执行速度上,前缀格式的效率更高。因为前缀函数将值加1,然后返回;但是后缀首先复制一个拷贝,将其加1,然后将复制的拷贝返回。
4、递增递减操作符和指针
1、前缀递增、前缀递减和引用解除操作符*的优先级相同,采用右结合。
2、后缀递增和后缀递减的优先级相同,比前缀操作符的优先级更高,采用左结合。
如:doubelarr[5]={21.1,32.8,23.4,45.2,37.4};
Double*pt=arr;
++pt;//ptpointtoarr[1],32.8
*++pt//==*(++pt)pointtoarr[2]23.4
++*pt//==++(*pt)pointtoarr[2]24.4
(*pt)++// pointtoarr[2]25.4
*pt++//==*(pt++) pointtoarr[2]25.4但是执行完这句语句后,pt的值将为arr[3]的地址。
5、逗号操作符
所有操作符中,逗号操作符的优先级最低。
逗号表达式的值是第二部分的值
Data=17,240; 被解释为:(Data=17),240; 所以,Data=240;
6、逐字节读取文本输入
若ch为char变量,则:
cin>>ch;//忽略空格、换行、制表符
cin.get(ch);//不管字符是什么,都存储到ch,而且返回输入字符
ch=cin.get();
分享到:
相关推荐
C++ primer plus学习笔记之三,分为一下几个部分: 函数参数:介绍了函数的生命规则以及定义 数组函数:数组作为变量时的使用方法 指针和const:灵活运用指针和const 函数和二维数组:二维数组作为变量时声明以及定义...
C++ Primer Plus学习笔记。包括基本语法以及STL的使用
C++ primer plus学习笔记.md
第八章函数探幽 内联函数 默认参数 函数重载 函数模板
C++ primer plus 第五版的个人学习笔记,仅供大家学习参考。
《C++ Primer Plus第6版中文版》学习笔记(第十章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的
C++ Primer Plus 第六章分支语句和逻辑操作符的笔记 用例子阐释了 逻辑表达式,问号操作符,switch语句,break和continue以及文件简单输入输出 学习笔记系列博客地址:...
C++ Primer Plus 第9章内存模型和名称空间 new操作符以及名称空间的使用demo
我的c++学习笔记,主要是对《c++ Primer Plus》一书的一些学习笔记
类Class的用法 类的构造函数和析构函数 const成员函数 this指针 对象数组
红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的
C++ primer plus第6版部分章节学习笔记以及代码记录
【C++】Heather银行对顾客排队等待的时间进行估测问题 《C++ Primer Plus》12.7 队列模拟 学习笔记 Heather银行打算在Food Heap超市开设一个自动柜员机(ATM)。Food Heap超市的管理者担心排队等待使用ATM的人流会...
红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的
《C++ Primer Plus第6版中文版》学习笔记(第十一章) 红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的
本文是C++读书笔记系列的第三篇,是读完《C++ primer plus》一书第九、十两章记录下来的笔记,学习C++的同学可以看看参考下。
红字内容是有疑问或者没把握的。 绿字部分是比较重要,或者经过确认的
C语言 + C Primer Plus + 学习笔记
对初学C++primer这本书的童鞋非常有用!!
第二章答案 喜欢c++的一起进步,一起学习 复习题大概答案