C++将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。这是C++语言灵活性的一种表现。

请注意,用cout语句输出一个赋值表达式的值时,要将该赋值表达式用括号括起来,如果写成“cout<<a=b;”将会出现编译错误。

C++提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如
    3+5, 6+8
称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为:
    表达式1, 表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。如,逗号表达式
   a=3*5, a*4
赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5(也就是把“a=3*5”作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60。

一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如
    (a=3*5, a*4), a+5
逗号表达式的一般形式可以扩展为:
    表达式1, 表达式2, 表达式3, …, 表达式n
它的值为表达式n的值。

逗号运算符是所有运算符中级别最低的。因此,下面两个表达式的作用是不同的:
    x=(a=3, 6*3)
    x=a=3, 6*a

其实,逗号表达式无非是把若干个表达式“串联”起来。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句(for语句)中。

在用cout输出一个逗号表达式的值时,要将该逗号表达式用括号括起来,如:
    cout<<(3*5, 43-6*5, 67/3)<<endl;

C和C++语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而使用灵活,适应性强。

最新文章

  1. FixFFmpeg 修改官方编译的ffmpeg能在 XP 上运行的工具
  2. 规则引擎集成接口(八)Java接口实例
  3. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)
  4. MySQL常用SQL/函数汇总(持续更新)
  5. 硬盘类型和Linux的分区
  6. 01 MySQL锁概述
  7. jquery取消事件冒泡和取消默认行为
  8. Android学习四、Android中的Adapter
  9. Linq to XML的练习
  10. HTTP协议之URL
  11. windows 下文件的高级操作
  12. 关于Mac或Linux下GO的Permission denied提示错误
  13. java ==与equals()方法的总结
  14. openwrt手动wifi设成client模式[笔记]
  15. 多线程的异常处理、线程取消、临时变量、lock
  16. Reboot server stuck at &ldquo;Press ESC in 1 seconds to skip startup.nsh&rdquo;
  17. HDU 5877 Weak Pair(树状数组+dfs+离散化)
  18. python 文件读写,打开 未完。。。
  19. zookeeper学习记录第二篇-----安装、配置、启动
  20. K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表

热门文章

  1. poj 2155
  2. IOS开发新手教程(一)-数据类型和运算符
  3. hdu5188 加限制的01背包问题
  4. 【翻译自mos文章】oracle支持在RDBMS HOME 下的 符号链接( Symbolic Links)吗?
  5. BI系统的应用组织思路与数据分析模式
  6. 实现AJAX局部刷新以及PageMethod方法的使用
  7. python成长之路16
  8. OC中的类型强制转换
  9. jQuery.form 中的 ajaxForm() 和 ajaxSubmit()
  10. codeblocks + MinGW 以及vc 使用预编译头文件的方法