-
2022-02-15 11:25:11
逗号运算符(comma operator)含有两个运算对象,按照从左向右的顺序依次求值。
对于逗号运算符来说,首先对左侧的表达式求值,然后将求值结果丢弃掉。逗号运算符真正的结果是右侧表达式的值。如果右侧运算对象是左值,那么最终的求值结果也是左值。
//逗号运算符经常被用到for循环当中 vector<int> :: size_type int = ivec.size(); //将把size到1 的值赋给ivec的元素 for(vector<int>::size_type ix = 0; ix != ivec.size();ix++ , --cnt) ivec[ix] = cnt;
这个循环在for语句的表达式中递增ix、递减cnt,每次循环迭代ix和cnt相应改变,只要ix满足条件,我们就把当前元素设成cnt的当前值。
更多相关内容 -
C语言逗号运算符应用优先级与运算规则理解
2021-05-18 11:35:59一、逗号运算符介绍逗号运算符是C语言中常见的数学运算符号儿,多个运算的表达式之间可以用逗号分隔开来,然后用逗号分隔的这几个表达式可以单独进行运算,最后的运算结果取最后一个表达式的值进行返回。逗号运算符...一、逗号运算符介绍
逗号运算符是C语言中常见的数学运算符号儿,多个运算的表达式之间可以用逗号分隔开来,然后用逗号分隔的这几个表达式可以单独进行运算,最后的运算结果取最后一个表达式的值进行返回。
逗号运算符的运行方式为用逗号分隔开的这几个表达式由左至右依次按顺序执行,通常最后一个表达式的值就是整个运算的最后结果,而前面几个表达式的结果失效。
需要注意的一点是,逗号运算符在C语言中是运算级别最低的运算符,优先级最低,当多种运算符混合应用时,逗号运算符最后执行。
二、逗号运算符具体应用
逗号运算符的应用其实非常简单,工作中也不是特别常用,反而多出现在面试笔试的题目中,考察程序员的基础运算能力,特别是有些面试题经常搞一些陷阱刁钻的运算为难大家,接下来看几个代码实例理解逗号运算符的运算规则。
代码一:int e,f,g=3,h=4,i=5;
代码二:e=(++f,g–,h+3);
代码三:f=++g,h–,i+3;
首先我们计算变量e的赋值,按照逗号运算符只取最后一个表示的规则,结果就是h+3的值赋给变量e,所以e的值为7。
代码三中的运算比较复杂,掺杂了多种运算符,我们不妨将整个运算式拆分为f=++g、h–、i+3这三个表达式,按照优先级高者先执行的原则,f=++g应该优先运行,变量g最初的赋值为3,经历了二三行代码g–和++g的运算后结果还是3,故f最终的结果为3。虽然h–和i+3也会随之运行,大家可能会认为f的结果是i+3的值,但是由于++g的优先级较高,运算完成后优先将结果赋值给了f。
看上以上代码的详细案例说明,相信大家对逗号运算符的运算规则应该有了更深刻的理解,只要牢记优先级最低、自左至右顺序执行、最终结果区最后一个表示的返回结果这三个特点,不管面试题在怎么千变万化,依然能够从容应对。
三、C语言中运算符优先级的高低顺序说明
大家只掌握逗号运算符是不够的,综合类的运算题中往往是多种运算符混合计算的,只了解逗号运算符的优先级而对其它运算符陌生的话也未必能够做对相关面试题,故小编为大家列出其它运算符的优先级。
上图中各种运算符的优先级由上而下依次降低,逗号运算符排在最末尾,由此可见其优先级最低,大部分运算符运算顺序都是由左至右,有三个运算符反其道而行之,从右至左运算,它们分别是赋值运算符、单目运算符和提条件运算符。
这么多运算符记忆起来不免有些复杂,记忆口诀可以理解为:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。
-
C++编程中逗号运算符和条件运算符的使用方法讲解
2020-12-31 20:31:54逗号运算符:, 允许对两个语句进行分组,其中有一个是预期的。 expression , expression 备注 逗号运算符具有从左向右的关联性。 由逗号分隔的两个表达式将从左向右进行计算。 始终计算左操作数,并且在计算右... -
逗号运算符
2021-08-31 19:11:57逗号运算符的使用在c语言中逗号“,”也是一种运算符,成为逗号运算符。其功能是把两个表达式连接起来组成一个表达式,称为逗号表达式。
期一般形式为:
表达式1,表达式2
其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。
例:
#include <stdio.h> int main() { int a=2,b=4,c=6,x,y; y=((x=a+b),(b+c)); printf("y=%d,x=%d",x,y); return 0; }
输出结果为x=6,y=10
将表达式2的值作为结果赋值给y
注意一点,c语言的运算符中,逗号运算符的优先级是小于赋值运算符的,因此如果不加括号,输出的结果y就是6了。比如
#include <stdio.h> int main() { int a=2,b=4,c=6,x,y; y=(x=a+b),(b+c); printf("y=%d,x=%d",x,y); return 0; }
-
C语言逗号运算符
2021-01-08 12:35:39在C语言中,逗号可以将多个表达式分隔开来。其中,用逗号分隔的表达式被分别计算,并且整个...上面的语句中,Value的值为7,而不是12,这是因为赋值运算符的优先级高于逗号运算符。因此要先执行赋值的运算。如果要先执在C语言中,逗号可以将多个表达式分隔开来。其中,用逗号分隔的表达式被分别计算,并且整个表达式的值都是最后一个表达式的值。
逗号表达式成为顺序求值运算符,一般形式如下:
表达式1,表达式2,…,表达式n;
逗号表达式的求解过程为:先求解表达式1,再求解表达式2,一直求解到表达式n。整个逗号表达式的值是表达式n的值。
下面观察使用逗号运算符的代码:
Value=2+5,1+2,5+7;
上面的语句中,Value的值为7,而不是12,这是因为赋值运算符的优先级高于逗号运算符。因此要先执行赋值的运算。如果要先执行逗号运算,则可以使用括号运算符,如
Value=(2+5,1+2,5+7);
使用括号后,Value的值为12。
-
C语言逗号运算符和逗号表达式
2021-08-05 09:39:35C语言逗号运算符和逗号表达式C语言逗号运算符和逗号表达式y = (x = a + b), (b + c)结果奇怪 C语言逗号运算符和逗号表达式 在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接 其一般... -
java逗号运算符
2021-03-02 17:57:02java逗号运算符 c语言的逗号运算符: x = (3+4,3+5); //x = 8 是将表达式2的值赋给了x。 在java里也有,叫逗号操作符或运算符。 Java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和... -
js中的逗号运算符
2020-03-05 19:25:55在JavaScript中逗号运算符是先计算逗号前面的表达式,再计算逗号后面的表达式,最后将后面的结果得出返回 例如: var a = (1 - 1, 1 + 1); 控制台输出: -
C++ 逗号运算符 | 菜鸟教程
2020-12-20 12:34:24C++ 逗号运算符使用逗号运算符是为了把几个表达式放在一起。整个逗号表达式的值为系列中最后一个表达式的值。从本质上讲,逗号的作用是将一系列运算按顺序执行。表达式1, 表达式2求解过程是:先求解表达式 1,再求解... -
C语言逗号运算符和逗号表达式基础总结
2021-05-18 13:35:46逗号运算符的作用:1,起分隔符的作用:定义变量用于分隔变量:int a,b输入或输出时用于分隔输出表列 printf("%d%d",a,b)2,用于逗号表达式的顺序运算符语法:表达式1,表达式2,...,表达式n表达式的值:表达式n的值... -
C++之逗号运算符
2017-04-29 09:18:56逗号运算符的求值 逗号运算符( comma operator )含有两个运算对象,按照从左向右的顺序依次求值。例如: i=20, j=2*i 首先对逗号左侧的表达式求值,然后将求值结果丢弃掉,之后对逗号右侧的表达式求值。... -
C语言中的逗号运算符
2020-12-06 20:05:35C语言中的逗号运算符 在C语言中逗号“,”也是一种运算符,称为逗号运算符。其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为: 表达式1, 表达式2 其求值过程是分别求两个表达式的值,... -
学习笔记---赋值运算符与逗号运算符
2016-11-29 19:54:30赋值运算符: 赋值运算符 优先级 运算符 功能 结合方式 14 = += -= *= /= &= ^= |= >= 各种赋值 由右向左 赋值表达式: 如:int a; a = 3; 赋值运算符的作用是:使= 如a=3;这条语句中:a是左值,=是... -
【C语言】逗号运算符详解:
2020-12-21 19:55:01逗号也是运算符? 是的,但是其实我更愿意说它是分隔符。在C语言中我们就经常使用逗号,看似逗号是非常平凡的分隔符,但是它关联到一个你必须知道但可能未曾思考的小知识: 理论上,每条语句(分号结束),最终都会... -
Python代码。 它是逗号运算符吗?
2021-03-17 19:21:53它是逗号运算符吗?我不明白什么逗号后面的variables行,意思是: http : //matplotlib.org/examples/animation/simple_anim.htmlline, = ax.plot(x, np.sin(x))如果我删除逗号和variables“行”,变成“行”... -
有趣的逗号运算符C语言——For初学者
2019-05-29 23:46:31本篇文章主要是聊一聊有趣的逗号运算符,学C语言的萌新们,应该能感觉到C语言有两个有趣的运算符,一个是赋值运算符(=),另一个就是逗号运算符(,)。在许多其他高级程序语言中并没有这个运算符(比如Java中,它... -
C++中赋值运算符与逗号运算符的用法详解
2021-01-01 12:22:29如“a=3”的作用是执行一次赋值操作(或称赋值运算)。把常量3赋给变量a。也可以将一个表达式的值赋给一个变量。 赋值过程中的类型转换 如果赋值运算符两侧的类型不一致,但都是数值型或字符型时,在赋值时会自动进行... -
逗号运算符与表达式
2020-03-18 14:54:123.4.13逗号运算符与表达式 用逗号将多个表达式连接起来,又称为“顺序求值运算符”。整个表达式的值是最后那个逗号之后表达式的值 1、逗号运算符代码: 2、补充: 逗号运算符的求值方向 4、本节小复习。... -
C语言中逗号运算符怎么用?
2017-02-27 14:41:19逗号运算符( , )是C语言运算符中优先级最低的一种运算符,结合顺序是从左至右,... // 运行后c值为0,因为逗号运算符的优先级低于赋值运算符,所以先将a>b的结果(为0)赋值给c,之后运算a+b(结果不保存),所以c= -
C之三目运算符和逗号表达式(十七)
2021-05-24 04:23:47三目运算符可以作为逻辑运算的载体,规则是:当 a 的值为真时,返回 b 的值;否则返回 c 的值。那么三目运算符的返回类型是怎样确定的?有两条规则:a> 通过隐式类型转换规则返回 b 和 c 中的较高类型;b> 当.... -
c语言中什么是逗号运算符并举例
2021-05-19 18:31:37逗号运算符是指在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。逗号运算符是指在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的... -
js运算符、优先级、逗号运算符
2020-12-30 19:01:32一元运算符、二元运算符、运算元运算符运算元字符串连接功能,二元运算符 +数字转化功能,一元运算符 +拼接字符串,二元运算符 +运算符优先级赋值运算符求余运算符 %幂运算符 **自相加/自相减位运算符修改并替换逗号... -
浅谈JS中逗号运算符的用法
2020-11-22 17:32:29注意: 一、由于目前正在功读JavaScript技术,所以这里拿JavaScript为例。... 二、JavaScript语法比较复杂,因此拿JavaScript做举例。 最近重新阅读JavaScript权威指南这本书,应该说很...还有明确运算符和运算数多是些啥 -
C++_逗号运算符
2021-01-15 21:46:03C++中逗号可以作为一个运算符,其作用是连接左右两个表达式, 如:3+5,6+8; 其会先执行逗号左边的表达式然后再执行逗号右边的表达式,两个表达式都计算完以后,以右边的表达式作为最终表达式的结果。 例如: #... -
C语言逗号运算符用法
2017-05-27 10:16:39在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为: 表达式1, 表达式2 其求值过程是分别求两个表达式的值,并以表达式2的值... -
C语言中逗号运算符是从左至右?
2021-05-21 11:17:42在c语言中,何为条件运算符!具体计算机具有逻辑判断能力,其判断的依据是计算机内部进行逻辑运算的结果。C语言提供了关系运算和逻辑运算,用来构造C程序控制中的条件,实现程序的选择结构和循环结构控制。关系运算和... -
请问C语言里逗号运算符有什么用?
2021-05-18 15:15:36C语言中,逗号既可作 分隔符 ,又可作 运算符。(1)逗号作为分隔符使用时,用于间隔说明语句中的变量或函数中的参数;例如楼上的朋友所举的例子:int a, b, c, d; 用于 间隔说明语句中的变量,printf ("%d %d",x,y)...