Click here to Skip to main content
Sign Up to vote bad
good
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 - 22:28


2 solutions

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  
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
Your Filters
Interested
Ignored
     
0 OriginalGriff 273
1 Mahesh Bailwal 230
2 Ron Beyer 220
3 Aarti Meswania 195
4 Rohan Leuva 170
0 Sergey Alexandrovich Kryukov 8,548
1 OriginalGriff 6,819
2 CPallini 3,648
3 Rohan Leuva 2,933
4 Maciej Los 2,288


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