Click here to Skip to main content
11,477,834 members (72,426 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 194
1 Richard Deeming 180
2 OriginalGriff 160
3 Sascha Lefèvre 145
4 Tomas Takac 130
0 Sergey Alexandrovich Kryukov 7,675
1 OriginalGriff 7,256
2 Sascha Lefèvre 3,034
3 Maciej Los 2,491
4 Richard Deeming 2,305


Advertise | Privacy | Mobile
Web04 | 2.8.150520.1 | 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