在C语言中逗号运算符可以将两个表达式连接起来

int n = 3+5, 6+ 10;   // 此时 n = 16  ,

称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为 表达式1, 表达式2
逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5, 6+ 10”的值为16。


例子 : a=3*5,a*4, 注意重点 : 逗号运算符优先度最低,比赋值运算符低。
对此表达式的求解,读者可能会有两种不同的理解:一种认为“3*5,a*4” 是一个逗号表达式,先求出此逗号表达式的值, 如果a的原值为3,则逗号表达式的值为12,将12赋给a, 因此最后a的值为12。另一种认为:“a=3*5”是一个赋值表达式”,“a*4”是另一个表达式,二者用逗号相连,构成一个逗号表达式。这两者哪一个对呢?
赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5(也就是把“a=3*5”作为一个表达式)。经计算和赋值后得到a的值为15,然后求解a*4,得60。整个逗号表达式的值为60

下面在将两个例子:

  1. x = (a = 3, 6 * 3);
  2. x = a = 3, 6 * a;
  1. 是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。
  2. 包括一个赋值表达式和一个算术表达式,x的值为3。

下面用一个程序看看

#include <iostream>using namespace std;int main(int argc, char** argv)
{int a = 1, b = 2, c = 3;cout << (a, b, c) << b << c << endl;  // 323// 逗号运算符 优先级最小int x = (a = 3, 6 * 3);cout << x << endl;   // 18return 0;
}

另外附上我的github仓库:https://github.com/acelj/Notes
分享关于C++基础知识,智能指针,内存四区, 数据结构和算法,linux, mysql,redis等等。

C/C++ 中的逗号运算符相关推荐

  1. JavaScript中的逗号运算符

    JavaScript逗号运算符  阅读本文的前提,明确表达式.短语.运算符.运算数这几个概念. 所谓表达式,就是一个JavaScript的"短语",JavaScript解释器可以计 ...

  2. C语言中的逗号运算符

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

  3. 在c语言中逗号的作用,关于c语言中的逗号运算符???

    等下..答错了..还需要理解一下神马是逗号表达式..我前面说的和uuyyhhjj与delta_charlie的意思一样,但其实我们都搞错了.你可以自己把我们的例子都运行一下,看看是不是这样.下面我感觉 ...

  4. JS中的逗号运算符(,)

    逗号运算符 逗号运算符是二元运算符,它能够先执行运算符左侧的操作数,然后再执行右侧的操作数,最后返回右侧操作数的值. 逗号表达式: 一般形式:表达式1,表达式2,表达式3,......表达式n 求解过 ...

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

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

  6. c语言中逗号自加,计算机二级自加、自减运算符和逗号运算符

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.设有定义:int k=0;,以下选项的四个表达式中与其他三个表达式的值不相同的是( ). A.k++ B.k+=1 C.++k D.k+1 参考答案: ...

  7. Java中逗号运算符的使用

    今天看到一道面试题,题目如下: 题目解释: 上面有一个类,有四个成员属性,以及两个构造方法(一个四个参数,一个两个参数),题目给出四个选项,问哪些选项可以满足在在四个参数的构造方法中完成x=a,y=b ...

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

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

  9. 小括号在c语言的作用,C语言的小括号----其实是逗号运算符

    比如下面的代码: #include void fun() { int a, b, c, d; a = (, b = ); c = (, ); d = (, ); printf("%d %d ...

最新文章

  1. 美团开源Logan Web:前端日志在Web端的实现
  2. Mysql与sqlite注意
  3. Magento利用input type=”file”上传图片
  4. shell 删除奇数偶数行
  5. VS2008(SP1)资源编译错误:fatal error RC1015: cannot open include file 'afxres.h'.
  6. javascript 在对象中使用 定时器_如何使用JavaScript 面向对象编程
  7. 2020 年最牛逼的 10 门编程语言,别在选错语言了
  8. 速领,阿里巴巴Java开发手册终极版
  9. String.Empty、string=”” 和null的区别
  10. 浅识Flutter 基本组件之showDatePicker方法
  11. Verilog学习笔记4:关于5M40ZE64C4N接地的问题
  12. 阿里大数据工程师面经
  13. 服务器时区不对微信支付报错,微信支付设置time_expire后提示【交易有效截止时间非法】问题...
  14. 查询数据库空间(mysql和oracle)
  15. 《算法竞赛入门经典(第2版)》——学习记录
  16. 泰勒公式求极限c语言switch,C语言利用泰勒公式构造求SIN(X),求大触帮看我的代码哪里有问题...
  17. 用Python爬取知乎上关于程序员的神回复
  18. 静止轨道卫星角度效应校正方法
  19. 十年如一日 倡领孝老敬老风尚
  20. UPS电源及电池内阻综合监控—电池组、单体电池电压、异常告警

热门文章

  1. MDI/MDIX/Auto-MDI/MDIX的解析大全
  2. java小球碰撞实验报告_实验五 Java网络编程及安全 实验报告 20135232王玥
  3. 计算机科学与技术审核评估专家,审核评估进行时|学校召开本科教学工作审核评估专家组见面会...
  4. vs编译运行闪退不用system(“pause”)方法
  5. 音频数据处理的基本框架(基于ADSP-SC589)
  6. 偏差(Bias)与方差(Variance)
  7. CV2 Sobel算子实现方法研究
  8. 1.输出长春地铁1号线运行图
  9. 智慧水务三维空间管理平台能够实现哪些功能?
  10. Openshift介绍及常用命令