增量和减量

news/2024/11/30 3:50:49/

 

  增量和减量操作符表示为:++和--。
  增量操作表示加1,减量操作表示减1。例如:
   a++; //相当于a=a+1;
   ++a; //相当于a=a+1;
   a--; //相当于a=a-1;
   --a; //相当于a=a-1;
  增量操作符有前增量与后增量之分。前增量操作++a的意义为:先修改操作数使之增1,然后将增1过的。值作为表达式的值。而后增量操作a++的意义为:先将变量a的值作为表达式的值确定下来,再将a增1。对于增量和减量操作符,它要求操作数是左值,因为操作数的值要发生变化。例如:
   int a=3;
   int b=++a;//相当于a=a+1;b=a;
   cout <<a <<" " <<b <<endl;
   int c=a++; //相当于c=a;a=a+1;
   cout <<a <<" " <<c <<endl;

  输出的结果为:
   4 4
   5 4

  b被赋予了4, 因为前增量操作先将a自增为4,然后作为表达式赋值。C被赋予了4,因为后增量操作使表达式的值(a)先赋给c,然后a再自增值为5。
  由于前增量操作返回的值即修改后的变量值,所以返回的仍是一个左值。例如:
   int a=3;
   ++(++a); //Ok:++a是左值

  例中得到的a的值为5。
  由于后增量操作返回的值是原先a的值,尔后a的值已经发生变化,故返回的不能是当前a,只能是过去的a值,不能是左值。例如:
   int a=3;
   ++(a++); //error:a++不是左值

  相应的,有前减量--a和后减量a--。例如:
   int a=3;
   int b=--a;//相当于a=a-1;b=a;
   cout <<a<<" " <<b<<endl;
   int c=a--;//相当于c=a;a=a-1;
   cout <<a <<” ” <<c <<endl;

  输出的结果为:
   2 2
   1 2

  由于增量与减量操作包含有赋值操作,所以操作数不能是常量,它必须是一个左值表达式。例如:
   3++; //error
  增量与减量操作符是两个+或两个-的一个整体,中间不能有空格。如果有多于两个+或两个-连写的情况,则编译首先识别前面两个+或-为增量或减量操作符。
  例如,对于“int a=1,b=5,c;”的变量定义,下面5个表达式,有些不允许:
   c=a+b; //ok:c=6
   c=a++b; //error:编译接收为a ++ b
   c=a+++b; //ok:编译接收为a++ + b
   c=a++++b; //error:编译接收为a++ ++b
   c=a+++++b; //error:编译接收为a++ ++ +b
  第2行中,编译将其理解为a ++ b。由于++操作是单目运算符,所以该表达式语法错误。若要合法,应写成a+ +b,表示a加上正b。
  第4行中,编译将其理解为a++ ++b。 同样由于++是单目操作符,引起编译错误。若要合法,应写成a+++ +b,表示a++加上正b。
  第5行中,编译将其理解为a++ ++ +b。由于a++是个非左值表达式,所以中间的++操作符是非法的。若要合法,应写成a+++ ++b或者a++ + ++b,表示a++加上++b。


http://www.ppmy.cn/news/500564.html

相关文章

什么是迭代和增量开发

不同类型的项目有不同的管理风格、组织结构和生命周期。每一种都没有完美的。每个项目都有它的位置、最佳平衡和开发过程&#xff0c;它可以是迭代的&#xff0c;或者在需求和环境中有高度变化&#xff0c;或者是增量的&#xff0c;即定期交付结果的过程。这意味着什么&#xf…

分布式数据库或成为新增量

以下文章来源于华泰证券&#xff1a;http://www.microbell.com/repinfodetail_775272.html 作者&#xff1a;谢春生、郭雅丽 数据库行业螺旋上升&#xff0c;分布式数据库或成新增量 纵观计算机行业发展历程&#xff0c;计算载体经历了从大型机到小型机&#xff0c;再到分布式…

关于存量和增量的杂谈

关注存量&#xff0c;好处是稳定&#xff0c;但坏处时会被存量绑架。一个小区门口有一个煎饼摊&#xff0c;此时小区里的每日消费量是一个固定的存量&#xff0c;此时你在旁边也开了一个煎饼摊&#xff0c;这就是典型的存量的竞争&#xff0c;两个竞争对手提供同质化的产品&…

2023商业新变局,如何向存量要增量?

2022财年业绩披露周期到来&#xff0c;过往一年经济下行给企业带来的压力愈发体现出来。除了AI、新能源造车等少数赛道&#xff0c;已经很少看到高投入、高增长的经营模型&#xff0c;转而变为稳定增长&#xff0c;积极盈利的发展模式。 宏观策略传递到互联网广告市场&#xff…

MySQL数据库学习笔记二

数据库存储引擎 数据库存储引擎是数据库底层软件组织&#xff0c;数据库管理系统&#xff08;DBMS&#xff09;通过数据引擎&#xff0c;对数据进行创建、查询、修改和删除的操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能&#xff0c;使用不同的存储引擎…

【头歌-Python】Python第七章作业(初级)

第1关&#xff1a;字符串去重排序 任务描述 输入一个非空字符串&#xff0c;去除重复的字符后&#xff0c;从小到大排序输出为一个新字符串。 输入格式 一个非空字符串 输出格式 去重排序后的字符串 示例 输入&#xff1a; Life is short, you need Python!输出&#…

flex三兄弟

连接&#xff1a;https://blog.csdn.net/m0_37058714/article/details/80765562