Please Explain Comma Operator in this Program

前端 未结 3 1976
迷失自我
迷失自我 2020-11-28 14:45

Please explain me the output of this program:

int main()
{    
    int a,b,c,d;  
    a=10;  
    b=20;  
    c=a,b;  
    d=(a,b);  
    printf(\"\\nC= %d\"         


        
相关标签:
3条回答
  • 2020-11-28 15:00

    The comma operator evaluates all its operands, then yields the value of the last expression.

    0 讨论(0)
  • 2020-11-28 15:07

    The , operator evaluates a series of expressions and returns the value of the last.

    c=a,b is the same as (c=a),b. That is why c is 10

    c=(a,b) will assign the result of a,b, which is 20, to c.

    As Mike points out in the comments, assignment (=) has higher precedence than comma

    0 讨论(0)
  • 2020-11-28 15:10

    Well, this is about operator precedence:

    c=a,b
    

    is

    equivalent to

    (c=a),b
    

    The point is, the "," operator will return the second value.

    Thus

    c=a,b
    

    assigns a to c and returns b

    d=(a,b) 
    

    returns b and assigns it to d

    0 讨论(0)
提交回复
热议问题