Click here to Skip to main content
11,414,561 members (68,943 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C
main(){
     int i,j,k;
     k = (i = 4, j = 5);
     printf("k = %d", k);
     return 0;
}

which gets the prcedence and how ?
Posted 15-Jan-13 23:28pm
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

output is k = 5 because:
  1. Compiler told me.
  2. This is how comma operator works, namely: "[comma] is a binary operator that evaluates its first operand and discards the result, and then evaluates the second operand and returns this value (and type)" (see Comma operator at Wikipedia[^]).

  3. Hence evaluation steps are:
    1. i = 4 (discarded)
    2. j = 5 (returned)
    3. k = 5 (k gets the returned value of the comma operator)
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Go to this link and you will know the order-of-precedence-in-c-programming-language[^]
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 9,130
1 OriginalGriff 7,477
2 Maciej Los 3,710
3 Abhinav S 3,298
4 Peter Leow 3,084


Advertise | Privacy | Mobile
Web01 | 2.8.150427.4 | Last Updated 16 Jan 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100