C++逗号运算符与逗号表达式

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

时间: 2024-11-10 11:23:51

C++逗号运算符与逗号表达式的相关文章

c语言中逗号运算符和逗号表达式

原文:c语言中逗号运算符和逗号表达式 C语言提供一种特殊的运算符——逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8 称为逗号表达式,又称为“顺序求值运算符”.逗号表达式的一般形式为 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2.整个逗号表达式的值是表达式2的值.例如,上面的逗号表达式“3+5,6+8”的值为14.又如,逗号表达式 a=3*5,a*4对此表达式的求解,读者可能会有两种不同的理解:一种认为“3*5,a*4” 是一个逗号表达式,先求出此逗号表达

C语言:逗号运算符

逗号运算符主要是用于连接表达式 例如:a=1+2,b=3*4 用逗号运算符连接起来的表达式称为逗号表达式 它的一般形式为:表达式1,表达式2,… …,表达式n逗号表达式的运算过程是:先算表达式1,再算表达式2,依次算到表达式n 整个逗号表达式的值是最后一个表达式的值

【学习笔记】【C语言】逗号运算符

逗号运算符主要用于连接表达式,例如: int a = 9; int b = 10; a = a+1 , b = 3*4; * 用逗号运算符连接起来的表达式称为逗号表达式,它的一般形式为: 表达式1, 表达式2, - -, 表达式n 逗号表达式的运算过程是:从左到右的顺序,先计算表达式1,接着计算表达式2,...,最后计算表达式n * 逗号运算符也是一种运算符,因此它也有运算结果.整个逗号表达式的值是最后一个表达式的值 int a = 2; int b = 0; int c; c = (++a,

javascript学习笔记---ECMAScript运算符(乘性,加性,关系,等性,关系,赋值,逗号运算符)

乘性:乘法,除法,取模,(特殊数字[Infinity,-Infinity,NaN,0]需要注意) 加性:加减法(同样特殊数字注意) 关系运算符执行的是比较运算.每个关系运算符都返回一个布尔值. 常规比较:数字与数字,字符串与字符串(按字符代码数值比较) 数字和字符串比较:先将字符串转为数字再比较 ECMAScript 提供了两套等性运算符:等号和非等号用于处理原始值,全等号和非全等号用于处理对象. 等号和非等号 在 ECMAScript 中,等号由双等号(==)表示,当且仅当两个运算数相等时,它

JS逗号运算符的用法详解

逗号运算符的用法详解 注意: 一.由于目前正在功读JavaScript技术,所以这里拿JavaScript为例.你可以自己在PHP中试试. 二.JavaScript语法比较复杂,因此拿JavaScript做举例. 最近重新阅读JavaScript权威指南这本书,应该说很认真的阅读,于是便想把所学的东西多记录下来.后 面本人将逐步写上更多关于本书的文章. 本文的理论知识来自于JavaScript权威指南,我这里做一下整理,或者说叫笔记. 如果你的基础够好的话,完全理解不成问题,但是如果读得有些郁闷

算术运算符和算术表达式(优先级,结合性等)

%  得到余数  7 % 2 得到1 运算符的优先级 C语言中,运算符的运算优先级共分为15级.1级最高, 15级最低.在表达式中, 优先级较高 的先于优先级较低的进行晕死.而在一个运算量两侧的运算符优先级相同时, 则按运算符的 结合性所规定的结合方向处理. 运算符的结合性 c语言中各运算符的结合性分为两种, 即左结合性(自左至右)和右结合性(自右至左). 例如: 左结合性: 算术运算符的结合性是自左至右,即先左后右.如有表达式x-y+z则y应先与“-”结合,执行 x-y,在+z的yuns.这种

C++算术运算符与算术表达式

基本的算术运算符 在本章中主要介绍算术运算符与算术表达式,赋值运算符与赋值表达式,逗号运算符与逗号表达式,其他运算符将在以后各章中陆续介绍. 常见算数运算符 运算符 说明 举例 + 加法运算符,或正值运算符 3+5,+3 - 减法运算符,或负值运算符 5-2,-3 * 乘法运算符 3*5 / 除法运算符 5/3 % 模运算符,或称求余运算符 %两侧均应为整型数据,如7%4的值为3 需要说明,两个整数相除的结果为整数,如5/3的结果值为1,舍去小数部分.但是,如果除数或被除数中有一个为负值,则舍入

算术运算符和算术表达式(初学者)

1.C语言的运算符可以分为以下几类: 1.算术运算符:加(+).减(-).乘(*).除(/).求余(%).自增(++),自减(--) 2.关系运算符:大于(>).小于(<).等于(==).大于等于(>=).小于等于(<=).不等于(!=) 3.逻辑运算符:与(&&).或(||),非(!) 4.位操作运算符:参与运算的量,按二进制位进行运算.位与(&).位或(|).位非(!).位异或(^).左移(<<).右移(>>) 5.赋值运算符:用

C语言学习篇:逗号运算符的应用

今天来说说我最近碰到的一道C语言题!虽然说这个知识点应该有大神说过了,但是为了确保我确实掌握啦,还是决定将这个写出来! 先看看该题目的要求:对于一个数n,如果是偶数,就把n砍掉一半:如果是奇数,把n变成 3*n+ 1后砍掉一半,直到该数变为1为止.请计算需要经过几步才能将n变到1,并且测试案例需要多组输入!(就直接说了吧,这个是九度oj里面的编号为1031的题目要求,大家有兴趣或者想刷题,感觉这是一个不错的选择) 首先看看我写的c语言代码(采用DEVc++编辑): 1 #include <std