一、逗号运算符介绍
逗号运算符是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语言中运算符优先级的高低顺序说明
大家只掌握逗号运算符是不够的,综合类的运算题中往往是多种运算符混合计算的,只了解逗号运算符的优先级而对其它运算符陌生的话也未必能够做对相关面试题,故小编为大家列出其它运算符的优先级。
上图中各种运算符的优先级由上而下依次降低,逗号运算符排在最末尾,由此可见其优先级最低,大部分运算符运算顺序都是由左至右,有三个运算符反其道而行之,从右至左运算,它们分别是赋值运算符、单目运算符和提条件运算符。
这么多运算符记忆起来不免有些复杂,记忆口诀可以理解为:! > 算术运算符 > 关系运算符 > && > || > 赋值运算符。