C++primer5.5-5.7 自增自减、箭头、条件操作符
来源:互联网 发布:python中数据清洗的库 编辑:程序博客网 时间:2024/05/01 23:37
简介
前置自增 /减操作符 : 使其操作数加1 / 减1,操作结果是修改后的值;
后置自增 /减操作符 : 使其操作数加1 / 减1,操作后产生操作数原来的、未修改的值作为表达式的结果
养成使用前置操作符的习惯 ++i
================================================
一、自增自减操作符
1、前置和后置自增自减操作符
- 前置自增 /减操作符 : 使其操作数加1 / 减1,操作结果是修改后的值;
- 后置自增 /减操作符 : 使其操作数加1 / 减1,操作后产生操作数原来的、未修改的值作为表达式的结果
- 只有必要时才使用后置操作符!!p140
int i=0;int j;j=++i;//j=1,i=1j=i++;//j=1,i=2
2、后置自增自减操作符的使用
当我们希望在单个复合表达式中使用变量的当且值,然后再加1 时,通常会使用后置的++ 和 – 操作
在单个表达式中组合使用解引用和自增操作 *iter++
vector<int> ivec;//未初始化的容器,注意不能通过下标来初始化哦。int cnt =10;while(cnt>0)ivec.push_back(cnt--);for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();iter++)cout<<*iter<<endl;//输出从10---1的数//这段程序希望把cnt的值赋给vector对象的下一个元素,然后在下次迭代前cnt值减1。//如果使用前置操作,则是用cnt减1后的值创建ivec的新元素,结果是将9到0十个元素依次添加到ivec中。
vector<int>::iterator iter=ivec.begin();while(iter!=ivec.end())cout<<*iter++<<endl;//因为后自增操作优先于解引用操作,所以*iter++等效于*(iter++).//子表达式iter++使iter加1,然后返回iter原值的副本作为该表达式的结果。//因此解引用操作*的操作数是iter未加1前的副本。
二、箭头操作符
C++语言为包含点操作和解引用操作符的表达式提供了一个同义词:箭头操作符(->).
点操作符用于获取类类型对象的成员:item1.same_isbn(item2);
如果有一个指向Sale_item对象的指针(迭代器),则在使用点操作符前,需对该指针(迭代器)进行解引用:
Sale_item * sp =&item1 ;
(*sp).same_isbn( item2) ;
……………..略
三、条件操作符
- C++中唯一的一个三元操作符;
- 格式 : cond ? expr1 : expr2 如果cond为真,那么计算expr1.
- expr1 和 expr2只有一个表达式被计算。
int i=10,j=20,k=30;int maxval =i >j ? i : j;
int max=i;if(j>max) max=j;if(k>max) max=k;
1、在输出表达式中使用条件操作符
条件操作符优先级相对低。
。。。。。。。。。
略
0 0
- C++primer5.5-5.7 自增自减、箭头、条件操作符
- 第五章 表达式(part2) 自增和自减、箭头、条件、sizeof 、逗号 操作符
- C++ Primer 学习笔记9 表达式 (求余、自增和自减操作符、箭头操作符、条件表达式、sizeof操作符、逗号操作符)
- 自增操作符和箭头操作符
- C++(28)自增/自减操作符
- 自增和自减操作符
- 自增(++)和自减(--)操作符
- 关于自增自减操作符
- 自增自减操作符
- C++primer5.2关系、逻辑操作符
- c语言中自增操作符与自减操作符
- C 自增自减
- [C语言]菜鸟的一些理解-逻辑操作符,自增自减
- 自增自减操作符在C与C++中的左值区别
- c语言:自增自减运算符的操作详解
- 关于自增自减:C、C++自增自减运算符的研究
- C#的自增和自减操作符
- c++重载自增和自减操作符
- 《剑指Offer》学习笔记--面试题52:构建乘积数组
- OpenSSL库的RSA使用
- 博客从wordpress迁移到Github.io、GitCafe
- 在VS2010配置并运行PBC库程序
- 安卓源码学习之Handler执行流程
- C++primer5.5-5.7 自增自减、箭头、条件操作符
- 通过中间服务器做代理(端口转发)远程连接数据库
- IOS常用第三方框架 --- PullToRefresh 下拉刷新
- error the @annotation pointcut expression is only supported at Java 5 compliance level or above 异常解决
- Ubuntu 下 Byobu 终端安装
- 输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- mysql 的存储引擎介绍
- 4412用户层调用驱动控制led灯
- ReactiveCocoa - iOS开发的新框架