在C语言中逗号“,”也是一种运算符,称为逗号运算符。 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式。其一般形式为:表达式1,表达式2

其求值过程是分别求两个表达式的值,并以表达式2的值作为整个逗号表达式的值。

【例】

main() {int a=2,b=4,c=6,x,y;y=(x=a+b),(b+c);printf("y=%d,x=%d",y,x);
}

本例中,y等于整个逗号表达式的值,也就是表达式2的值,x是第一个表达式的值。对于逗号表达式还要说明两点:

  1. 逗号表达式一般形式中的表达式1和表达式2 也可以又是逗号表达式。

例如:
表达式1,(表达式2,表达式3)
形成了嵌套情形。因此可以把逗号表达式扩展为以下形式:
表达式1,表达式2,…表达式n
整个逗号表达式的值等于表达式n的值。

  1. 程序中使用逗号表达式,通常是要分别求逗号表达式内各表达式的值,并不一定要求整个逗号表达式的值。

并不是在所有出现逗号的地方都组成逗号表达式,如在变量说明中,函数参数表中逗号只是用作各变量之间的间隔符。

在MISRA C-2004中要求不要使用逗号表达式,摘录如下,

规则12.10(强制):  不要使用逗号运算符。 
使用逗号运算符通常不利于代码的可读性,可以使用其他方法达到相同的效果。

转载于:https://www.cnblogs.com/java20130726/p/3218643.html

C语言逗号运算符和逗号表达式相关推荐

  1. C语言中的逗号的作用,C语言逗号运算符和逗号表达式基础总结

    逗号运算符的作用: 1,起分隔符的作用: 定义变量用于分隔变量:int a,b 输入或输出时用于分隔输出表列 printf("%d%d",a,b) 2,用于逗号表达式的顺序运算符 ...

  2. c语言等号 逗号,C语言逗号运算符和逗号表达式

    在C语言中逗号","也是一种运算符,称为逗号运算符. 其功能是把两个表达式连接起来组成一个表达式, 称为逗号表达式.其一般形式为:表达式1,表达式2 其求值过程是分别求两个表达式的 ...

  3. c语言逗号的作用情况,C语言逗号运算符和逗号表达式基础总结

    逗号运算符的作用: 1,起分隔符的作用: 定义变量用于分隔变量:int a,b 输入或输出时用于分隔输出表列 printf("%d%d",a,b) 2,用于逗号表达式的顺序运算符 ...

  4. python中的逗号运算符_C++ 逗号运算符 | 菜鸟教程

    C++ 逗号运算符 使用逗号运算符是为了把几个表达式放在一起. 整个逗号表达式的值为系列中最后一个表达式的值. 从本质上讲,逗号的作用是将一系列运算按顺序执行. 表达式1, 表达式2 求解过程是:先求 ...

  5. c语言算术运算的作用,C语言算术运算符和算术表达式

    C语言算术运算符和算术表达式 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算.下面和大家分享一些C语言算术运算符和算术表达式,一起来看看吧! 一. 基本的算术运算符 (1)+(加法运算 ...

  6. c语言关系运算符和关系表达式,C语言关系运算符和关系表达式表达式.ppt

    <C语言关系运算符和关系表达式表达式.ppt>由会员分享,可在线阅读,更多相关<C语言关系运算符和关系表达式表达式.ppt(6页珍藏版)>请在装配图网上搜索. 1.2.2 关系 ...

  7. 【c】c语言中逗号运算符和逗号表达式

    刚开始学习C语言时,对逗号去处符和逗号表达式非常困惑,本文给了我很大的帮助. 来自:百度空间-软件工程师 C语言提供一种特殊的运算符--逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8 称为 ...

  8. C语言中逗号运算符和逗号表达式

    C语言提供一种特殊的运算符--逗号运算符.用它将两个表达式连接起来.如: 3+5,6+8 称为逗号表达式,又称为"顺序求值运算符".逗号表达式的一般形式为 表达式1,表达式2 逗号 ...

  9. C语言--逗号运算符及逗号表达式

    逗号运算符及表达式 一.用法概述 C语言中","也是一种运算符,称为逗号运算符.其功能是将两个或多个表达式连接起来组成一个表达式.具体形式如下: 表达式1,表达式2,表达式3,.. ...

最新文章

  1. 小米笔记本服务器系统,小米笔记本Pro GTX版
  2. Coder-Strike 2014 - Finals (online edition, Div. 2) A. Pasha and Hamsters
  3. r psm倾向性匹配_南瓜香料指标psm如何规划季节性广告
  4. Delphi---TServerSocket和TClientSocket发送和接收大数据包
  5. Spark Scala当中reduceByKey的用法
  6. Galaxy Digital CEO:比特币应能守住4万美元关口
  7. python类的应用_python中文件类的应用
  8. python print return不同_Python中return和print的作用及区别
  9. python中的counter函数_Python的 counter内置函数,统计文本中的单词数量
  10. DataGrid固定列宽
  11. paip.输入法编程---输入法ATIaN历史记录 v8b
  12. 网吧操作系统制作与优化2007最终版(转)
  13. time stamp convert
  14. 互联网诞生记: 浪成于微澜之间
  15. 移动端安卓和苹果手机背景图片显示不全的问题
  16. 实验有效的js原生前端 全国三级联动
  17. Qt Creator嵌入式python时报错error: ::hypot has not been declared
  18. 一阶常微分方程的数值解法(二阶显式、隐式 Adams 公式及 Milne 方法)
  19. springmvc常用5种注解_5种常用补气中成药
  20. 华为设备Telnet配置命令及注释

热门文章

  1. Android快速开发系列 10个常用工具类
  2. ssh白名单_阿里云服务器ssh白名单
  3. 通俗易懂量子计算的原理
  4. Python入门 HelloWorld
  5. Qt中 Qstring 与QbyteArray的互相转换
  6. 每天一道LeetCode-----将字符串切分成若干单词,使得每个单词都在给定的字典中,求出所有的切分结果
  7. 进程同步算法实现实验报告Linux,操作系统进程同步实验报告.doc
  8. android cpu绑核
  9. 浅谈数据结构和数据类型
  10. 量子计算入门-第一部分