#define MAX(x,y) (x) > (y) ? (x) : (y)
main()
{
int i = 10, j = 5, k = 0;
k = MAX(i++, ++j);
printf("%d %d %d", i,j,k);
}
what will the values of i , j and k?
}
Answers were Sorted based on User's Feedback
Answer / vidyullatha
In Linux:
O/P: 12 6 11
Explanation:
when k = MAX(i++,++j) is called the macro is replaced and
evaluated as, (i++) > (++j) i.e 11 > 6. As the result of
the statement is true, it executes the statement ? (X) i.e
(i++) on total the statement looks like this
(i++) > (++j) ? (i++)
i.e 11 > 6 ? (i++)
i.e k = i++;
Here as i is post increment first value of i is assigned to
k and then it is incremented.
Hence k = 11.
as i is incremented twice it value is 12
and j is incremented once hence 6
So final O/P is 12 6 11.
Hope this helps.
| Is This Answer Correct ? | 35 Yes | 2 No |
Answer / amit kumar ram
i=11, j=6 , k=10.
bcoz i=10 and j=6 pass to function
then check and give k=x which is k=10
then increament i by 1 i.e i=11.
| Is This Answer Correct ? | 20 Yes | 12 No |
Famous puzzles which are generally asked by companies during interviews ?
What is meant by preprocessor in c?
How can a program be made to print the name of a source file where an error occurs?
Where is volatile variable stored?
What is the difference b/w main() in C language and main() in C++.
What is the difference between GETS();AND SCANF();
please give code for this 1 2 4 7 11 16
Can you add pointers together? Why would you?
What is the use of extern in c?
Write a program of prime number using recursion.
void main(int argc,char *argv[],char *env[]) { int i; for(i=1;i<argc;i++) printf("%s",env[i]); }
Explain heap and queue.