精华内容
下载资源
问答
  • 逗号运算符和逗号表达式

    万次阅读 多人点赞 2018-10-26 15:11:40
       C语言提供一种特殊的运算符——逗号运算符。用它将两个(或多个)表达式连接起来。  如:3+5,6+8  上式称为逗号表达式逗号表达式的一般形式为 ... 逗号表达式的求解过程是:...整个逗号表达式的值是表达式...

    转载博客:https://www.cnblogs.com/eniac12/p/4752143.html

     

      C语言提供一种特殊的运算符——逗号运算符。用它将两个(或多个)表达式连接起来。

      如:3+5,6+8

      上式称为逗号表达式。逗号表达式的一般形式为

             表达式1,表达式2

      逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值

     

      例如,上面的逗号表达式“3+5,6+8”的值为14。  

     

      又如,逗号表达式a=3*5,a*4,对此表达式的求解,赋值运算符的优先级别高于逗号运算符, 因此应先求解a=3*5,经计算和赋值后得到a的值为15,然后求解a*4,得60,整个逗号表达式的值为60(a仍为15)。

     

      再如,一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=3*5,a*4),a+5 先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。


      逗号表达式的一般形式可以扩展为

        表达式1,表达式2,表达式3,……,表达式n

      它的值为表达式n的值。

     

      逗号运算符是所有运算符中级别最低的。因此,下面两个表达式的作用是不同的:

      ① x=(a=3,6*3)
      ② x=a=3,6*a

      第①个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。

      第②个是逗号表达式,它包括一个赋值表达式和一个算术表达式,x的值为3。

      

      其实,逗号表达式无非是把若干个表达式”串联“起来。即逗号表达式纯粹就是为了在只能写一条表达式的地方写多条表达式而设计的,根据C++ Primer,用得最多的地方就是for循环。例如:

      

    for(int i = 0 , j = SIZE-1 ; i< j ; ++i , --j )
    {
        //循环体
    }

     

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

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

     

     C语言提供一种特殊的运算符——逗号运算符。用它将两个表达式连接起来。如:

      3+5,6+8

    称为逗号表达式,又称为“顺序求值运算符”。逗号表达式的一般形式为

             表达式1,表达式2

    逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值。例如,上面的逗号表达式“3+5,6+8”的值为14。又如,逗号表达式
      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。
      一个逗号表达式又可以与另一个表达式组成一个新的逗号表达式,如(a=3*5,a*4),a+5 先计算出a的值等于15,再进行a*4的运算得60(但a值未变,仍为15),再进行a+5得20,即整个表达式的值为20。
      逗号表达式的一般形式可以扩展为

        表达式1,表达式2,表达式3……表达式n

    它的值为表达式n的值。

      逗号运算符是所有运算符中级别最低的。因此,下面两个表达式的作用是不同的:

      ① x=(a=3,6*3)
      ② x=a=3,6*a

      第①个是一个赋值表达式,将一个逗号表达式的值赋给x,x的值等于18。第②个是逗号表达式,它包括一个赋值表达式和一个算术表达式,x的值为3。

      其实,逗号表达式无非是把若干个表达式“串联”起来。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值,逗号表达式最常用于循环语句(for语句)中.

      请注意并不是任何地方出现的逗号都是作为逗号运算符。例如函数参数也是用逗号来间隔的。如

      printf("%d,%d,%d",a,b,c);

      上一行中的“a,b,c”并不是一个逗号表达式,它是printf函数的3个参数,参数间用逗号间隔。
    如果改写为

      printf("%d,%d,%d",(a,b,c),b,c);

    则“(a,b,c)”是一个逗号表达式,它的值等于c的值。括弧内的逗号不是参数间的分隔符而是逗号运算符。括弧中的内容是一个整体,作为printf函数的一个参数。
    C语言表达能力强,其中一个重要方面就在于它的表达式类型丰富,运算符功能强,因而c使用灵活,适应性强

     

    作者:Leo Chin

    出处:http://www.cnblogs.com/hnrainll/

    展开全文
  • C++逗号表达式

    千次阅读 2012-05-03 15:55:30
    (1) 逗号表达式运算过程为:从左往右逐个计算表达式。 (2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。 (3) 逗号运算符的优先级别在所有运算符中最低。 例题1:若已定义x和y为...

    逗号表达式的形式如下:

      表达式1,表达式2,表达式3,...... ,表达式n

    逗号表达式的要领:

    (1) 逗号表达式的运算过程为:从左往右逐个计算表达式。
    (2) 逗号表达式作为一个整体,它的值为最后一个表达式(也即表达式n)的值。
    (3) 逗号运算符的优先级别在所有运算符中最低。

    例题1:若已定义x和y为double类型,则表达式:x=1,y=x+3/2的值是
       A) 1  B) 2 C) 2.0 D) 2.5

      分析:该表达式是一个逗号表达式,所以先运算x=1,结果变量x中的值为1.0,然后运算y=x+3/2,其结果是变量y中的值为2.0(这个运算过程可参阅本专题的“整数除法的注意事项”),注意此时表达式y=x+3/2的值即等于变量y的值为2.0。最后,整个逗号表达式的值应该等于最后一个表达式的值2.0,所以,正确答案是C)。
      注:该题曾在1998年4月和2000年9月的二级C考试中两次出现过。

    例题2:若t为double类型,表达式t=1,t+5,t++的值是
       A) 1 B) 6.0 C) 2.0 D) 1.0

      分析:该题的表达式也是一逗号表达式,运算过程同例题1。需要注意的是,其中的第二个表达式(t+5)对整个表达式的运算结果不产生任何影响,因为它没有改变变量x的值(x的值仍为1.0),最后一个表达式(t++)的值为变量x进行自增运算前的值1.0,所以整个表达式的值也为1.0。
      注:这是1998年4月二级C考试中的一道选择题。

    例题3:有如下函数调用语句
     func(rec1,rec2+rec3,(rec4,rec5));
     该函数调用语句中,含有的实参个数是
      A)3  B)4 C)5 D)有语法错误

      分析:C语言规定,函数调用时实参与实参之间是用逗号隔开的,所以,本题的函数调用语句中包含3个实参,其中第一个实参是rec1,第二个实参是rec2+rec3,第三个实参是(rec4,rec5),这里的第三个实参就是一个逗号表达式,根据逗号表达式的运算规则,第三个实参的值应该等于rec5的值。
      注:这是2000年9月二级C考试中的一道选择题。

    例题4:有如下函数调用语句
     fun(a+b,(x,y),fun(n+k,d,(a,b)));
     在此函数调用语句中实参的个数是
      A)3  B)4 C)5 D)6

    正确答案应该是A)。

    展开全文
  • C++逗号运算符与逗号表达式

    千次阅读 2014-10-12 15:20:16
    C++将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。这是C++语言灵活性的一种表现。 ... 称为逗号表达式

      C++将赋值表达式作为表达式的一种,使赋值操作不仅可以出现在赋值语句中,而且可以以表达式形式出现在其他语句(如输出语句、循环语句等)中。这是C++语言灵活性的一种表现。

      请注意,用cout语句输出一个赋值表达式的值时,要将该赋值表达式用括号括起来,如果写成“cout<<a=b;”将会出现编译错误。< p="">

      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;< p="">

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

    展开全文
  • C语言 逗号运算(,)及其表达式

    千次阅读 2019-02-03 22:08:03
    连接起来的式子,称为逗号表达式。逗号运算符又称顺序求值运算符。 1.一般形式 表达式1, 表达式2, ……, 表达式n 2.求解过程 自左至右,依次计算各表达式的值,“表达式n” 的值即为整个逗号表达式的值。 ...
  • 扩展一个逗号表达式: // 逗号运算符:英文的逗号 , // 逗号运算式:(表达式1,表达式2,.......表达式n); // 执行方式:会从表达式1执行到表达式n,但是只会取最后一个表达式的值为最终结果。 // 例如: int...
  • C语言-逗号运算符/表达式

    千次阅读 2018-09-28 15:42:42
     逗号运算符是所有运算符中级别最低的,遇到逗号运算符表示运算结束;  int i=0;  int j=(i++,i++,i++);  printf("i=%d,j=%d\n", i,j);//i=3,j=2;i++遇;才算结束  i=0;  int k=(i++)+(i++)+(i++);...
  • C++11 正则表达式库比boost的方便. 搞Java 的一定觉得很搞笑,这都是Java的标配功能, 怎么C++11才支持这个库,vs2010 以才支持. 参考 std::regex_replace  std::regex_iterator  Regular Expressions (C++)正则的...
  • 逗号操作符(,)可以构成逗号表达式逗号表达式用于将多个子表达式连接为一个表达式 — 逗号表达式的值为最后一个子表达式的值 — 逗号表达式的前 N-1 个子表达式可以没有返回值 — 逗号表达式按照从左向右...
  • 运算符与表达式运符符的优先级/结合性/分类常见运符算符及构成...运算代码演示:短路现象条件运算符与条件表达式列表解析代码演示逗号运算符与逗号表达式列表解析代码演示sizeof 运算符及其表达式列表解析sizeof代码...
  • JS正则表达式完整版

    万次阅读 多人点赞 2018-07-17 13:14:13
    第一章 正则表达式字符匹配攻略 1 两种模糊匹配 2. 字符组 3. 量词 4. 多选分支 5. 案例分析 第1章 小结 第二章 正则表达式位置匹配攻略 1. 什么是位置呢? 2. 如何匹配位置呢? 3. 位置的特性 4. 相关...
  • 运算符与表达式

    2020-12-03 19:04:36
    文章目录前言一、算术运算符:二、关系运算符:三、逻辑运算符:四、赋值运算符:五、条件...1.功能:反映运算符的运算法则。 2.优先级:反映运算符的运算顺序。 3.结合性:反映运算符的运算方向(从左向右、从右向
  • 看下面一段奇怪的代码: 想实现的功能是当now value的值大于10的时候, now value 值减10并且进位置1 结果carry偏偏不为1; ...其实是三元运算符的优先级比逗号的高, 这行代码被识别成了: ...运算...
  • 提示: 文章目录前言一、运算符的分类2....(1)功能:反映运算符的运算法则。 (2)优先级:反映运算符的运算顺序。 (3)结合性:反映运算符的运算方向(从左向右、从右向左)。 一、运算符的分类 分为:算术运算
  • 6.表达式¶本章将解释 Python 中组成表达式的各种元素的的含义。语法注释: 在本章和后续章节中,会使用扩展 BNF 标注来描述语法而不是词法分析。 当(某种替代的)语法规则具有如下形式name ::= othername并且没有给...
  • 算术运算符和算术表达式 运算符的优先级: C语言中 ,优先级分为15级。1级最高,15级最低。优先级较高的先于优先级低的进行运算,若二者优先级一致,则运算符结合性所规定的方向进行运算。 运算符的结合性: C语言中...
  • JavaScript正则表达式详解

    千次阅读 多人点赞 2019-06-13 18:49:46
    第一章 正则表达式字符匹配攻略 第二章正则表达式位置匹配攻略 第三章 正则表达式括号的作用 第四章 正则表达式回溯法原理 第五章 正则表达式的拆分 第六章 正则表达式的构建 第七章 正则表达式编程 后记 ...
  • 2.运算法则: max=(a>b)?a:b; <=> if(a>b) max=a; else max=b; 3.优先级别:13级,只比赋值和逗号高. 4.主要特点:C语言中唯一的一个三目运算符; 5.主要优势:代码简洁,执行效率比if语句稍高; 二.条件表达式...
  • 精通正则表达式(中英)

    热门讨论 2011-09-08 13:18:58
    正则表达式的平衡法则 186 若干简单的例子 186 匹配连续行(续前) 186 匹配ip地址 187 处理文件名 190 匹配对称的括号 193 防备不期望的匹配 194 匹配分隔符之内的文本 196 了解数据,做出假设 198 去除文本首尾的...
  • C语言之运算关系

    2018-06-10 17:40:25
    =) (1)语法: a和b的类型相同,且必须满足自动类型转换规则 (2)运算法则:如果a和b的类型不满足要求,编译器会尝试自动转换: 注意:不要比较两个浮点数是否相等,因为浮点数在计算机中的二进制可能存在误差...
  • 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准。 关于正则表达式的教程,网上也有很多,相信你也看了一些。 与之不同的是,本文的目的是希望所有认真读完的童鞋们,都有实质性的...
  • 想必你也了解正则的重要性,在我看来正则表达式是衡量程序员水平的一个侧面标准。 关于正则表达式的教程,网上也有很多,相信你也看了一些。 与之不同的是,本文的目的是希望所有认真读完的童鞋们,都有实质性的...
  • 文章目录操作符算数操作符移位操作符原码、反码和补码位操作符赋值操作符符合赋值操作符单目操作符关系操作符逻辑操作符条件操作符(三目运算符)逗号表达式 操作符 算数操作符 算数操作符除了我们熟知的加减乘除...
  • JS正则表达式

    2017-10-21 10:45:33
    只能输入数字(整数,屏蔽非法粘贴)&lt;br /&gt; &lt;input onkeyup="this.value=this.value.replace(/\D/g,'')"onafterpaste="this.value=this.value.replace(/\D/g,'')"...
  • 6. 表达式 本章将解释 Python 中组成表达式的各种元素的的含义。 语法注释: 在本章和后续章节中,会使用扩展 BNF 标注来描述语法而不是词法分析。 当(某种替代的)语法规则具有如下形式 name ::= othername 并且...
  • 精通正则表达式~~~

    2009-05-07 12:36:48
    正则表达式的平衡法则... 186 若干简单的例子... 186 匹配连续行(续前)... 186 匹配IP地址... 187 处理文件名... 190 匹配对称的括号... 193 防备不期望的匹配... 194 匹配分隔符之内的文本... 196 了解...
  • 操作数是运算符所作用的对象,是表达式中的一个组成部分,它规定了指令中进行运算的量。 比如 :int a; a = 3; b = a + 2; 把变量a的值3,与常量2相加,将结果5赋值给变量b中。 运算符用于执行程序代码运算,会...
  • 表达式 在学习c的过程中,会遇到很多的运算符号,一些常见的运算符:+ (加)、 - (减) 、 * (乘) 、 / (除)% (求余数) ,它们的优先级和数学上的四则运算大同小异。 其优先级为:*、/ 和%同级,但比+和-高。即...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,187
精华内容 874
关键字:

逗号表达式的运算法则