爱问知识人 爱问教育 医院库

C语言 逗号运算符 是几元操作符?谢谢

首页

C语言 逗号运算符 是几元操作符?谢谢

C语言 逗号运算符 是几元操作符?

提交回答

全部答案

    2018-02-20 09:19:03
  •   二元。。 

    下面是逗号运算符的讲解:
    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使用灵活,适应性强


    参考资料: http://hi。
      baidu。com/gworld/blog/item/e726247ba38918f50bd18753。html。

    罗***

    2018-02-20 09:19:03

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新资料 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 173-192
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):