《C++Primer Plus》学习笔记(四)
来源:互联网 发布:淘宝网企业店铺靠谱吗 编辑:程序博客网 时间:2024/06/12 01:08
1、递增和递减操作符
同一条语句对同一个值不要使用多次的递增递减操作。
如:x = 2*x++ *(3 - ++x); 在不同的操作系统中将产生不同的结果(规则“修改后使用”和“使用后修改”可能变得模糊不清)。
副作用点(side effect):指的是就算表达式时对某些东西(如存储在变量中的值)进行了修改
顺序点(sequence point):是程序执行过程中的一个点,在这里,进入下一步之前将确保对所有的副作用都进行了评估。语句中的分号就是一个顺序点。任何完整的表达式末尾都是一个顺序点。
再看上述的例子,表达式2*x++不是一个完整表达式,因此,C++不保证x的值在计算2*x++后立刻加1。由于整条语句是一个表达式,所以,执行完这条语句后,x加了2。
前缀格式(++n)和后缀格式(n++),在执行速度上,前缀格式的效率更高。因为前缀函数将值加1,然后返回;但是后缀首先复制一个拷贝,将其加1,然后将复制的拷贝返回。
1、前缀递增、前缀递减和引用解除操作符*的优先级相同,采用右结合。
2、后缀递增和后缀递减的优先级相同,比前缀操作符的优先级更高,采用左结合。
如: doubel arr[5] = { 21.1, 32.8, 23.4, 45.2, 37.4};
Double *pt = arr;
++ pt; //pt point to arr[1], 32.8
*++pt // == *(++pt) point to arr[2] 23.4
++ *pt // == ++(*pt) point to arr[2] 24.4
(*pt)++ // point to arr[2] 25.4
*pt++ // == *(pt++) point to arr[2] 25.4 但是执行完这句语句后,pt的值将为arr[3]的地址。
所有操作符中,逗号操作符的优先级最低。
逗号表达式的值是第二部分的值
Data = 17, 240; 被解释为: (Data = 17 ),240; 所以, Data = 240;
若ch 为char变量,则:
cin >> ch; //忽略空格、换行、制表符
cin.get( ch ); //不管字符是什么,都存储到ch,而且返回输入字符
- 《C++Primer Plus》学习笔记(四)
- C Primer Plus学习 四
- 《C Primer Plus》 学习笔记系列之(四)
- C++Primer Plus学习笔记
- 《C Primer Plus》学习笔记
- 《C Primer Plus》学习笔记
- C Primer Plus 学习笔记
- c++primer plus阅读笔记(四)
- 《C++.Primer.Plus》学习笔记(一)
- 《C++.Primer.Plus》学习笔记(二)
- (c primer plus第五版) 学习笔记
- c.primer.plus 学习笔记-- 1.概览
- 《C++Primer Plus》学习笔记(一)
- 《C++Primer Plus》学习笔记(二)
- 《C++Primer Plus》学习笔记(三)
- 《C++Primer Plus》学习笔记(五)
- 《C++Primer Plus》学习笔记(六)
- 《C++Primer Plus》学习笔记(七)
- Oracle Audit & FGA
- 《C++Primer Plus》学习笔记(三)
- Oracle Migrate AUDIT & FGA Tablespace
- 你知道哪些表面优惠其实稳赚的销售手段
- CentOS 5.6创建NFS文件共享服务器
- 《C++Primer Plus》学习笔记(四)
- 《C++Primer Plus》学习笔记(五)
- 《C++Primer Plus》学习笔记(六)
- 《C++Primer Plus》学习笔记(七)
- ORA-00997: illegal use of LONG datatype
- Oracle SQL Having Where Group by
- 浮点数的二进制表示学习笔记
- Algorithms Review: Divide and Conquer(Binary Search & Merge Sort)
- Oracle SQL string functions