Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15198790
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-03-20 18:47:56

来源: 作者:antigloss 等级:一般
发布于2006-09-04 23:27 被读2506次 【字体: 】

    C 语言中,逗号(,)也可以是运算符,称为逗号运算符(Comma Operator)。逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式,称为逗号表达式。其一般形式为:

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

例如:

        a + b, c = b, c++

逗号运算符的优先级是所有运算符中级别最低的,通常配合 for 循环使用。逗号表达式最右边的子表达式的值即为逗号表达式的值。上例中,c++ 的值(c 自增之前的值)即为该表达式的值。

    逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个,其左边所有都结束后,才对其右边的子表达式进行运算。因此,上例中,c 得到 b 的值后,才进行自增运算。

    下面我们来看一些小例子:

        var = 235,567;

乍一看您可能以为这个语句有语法问题,其实它是完全正确的!首先运算逗号左边的子表达式 var = 235,var 被赋值为 235;然后运算右边的子表达式,其值为 567,故而整个逗号表达式的值是 567。可别以为 var 得到的值是 235567 或者 567 哦!如果写成:

        var = (235,567);

则 var 得到的值是 567。

    逗号也被用作分隔符(separator),例如:

        int i_var1 = 1, i_var2 = 2, i_var3 = 3;
        printf("%d %d %d\n", i_var1, i_var2, i_var3);

上例中的逗号是分隔符,而不是逗号运算符。

参考资料:C Primer 5th Edition
          The C Programming Language 2nd Edition
          C99 标准

本文版权归 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。

阅读(686) | 评论(0) | 转发(0) |
0

上一篇:38. 布尔类型再探讨

下一篇:40. for 循环

给主人留下些什么吧!~~