码迷,mamicode.com
首页 > 其他好文 > 详细

逗号表达式的使用

时间:2017-08-06 14:07:39      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:blog   运算符   std   一个   ima   级别   逗号操作符   语言   font   

逗号操作符,是优先级最低的一个。

eg1:

#include<stdio.h>

int main()
{
    int a,b;
    a=b=1;
    b=a++,b++,++a;
    printf("b=%d\n",b);
   return(0);
}

技术分享

eg2:

#include<stdio.h>

int main()
{
    int a=8;
    printf("%d",(a=3*5,a*4));
   return(0);
}

技术分享

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两式联接起来,如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14。(a=3*5,a*4)的值是60

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

这样eg2输出60就没有疑问了,那么eg1呢?

eg1中,先执行 b=a++ ,此时 b 为 1 。 然后 b++ ,所以 b 的值 最终为 2。

逗号操作符,让运算顺序有了先后,故看到a++和++a在同一表达式中时不要以为是UB。

逗号表达式的使用

标签:blog   运算符   std   一个   ima   级别   逗号操作符   语言   font   

原文地址:http://www.cnblogs.com/yangguang-it/p/7294491.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!