main()
{
int i = -3,j=2,k=0,m;
m= ++i || ++j && ++k;
printf("%d%d%d",i,j,k,m);
}
Answers were Sorted based on User's Feedback
Answer / harend
results :
i=-2
j=2
k=0
m=1
First, the '&&' part is to be considered over '||'.
AS follow: m = ++i||++j&&++k (is given)
what ever be the result of (++j&&++k),the value of m =1
,since the new value i= -2 (i.e a non zero value so taken as
true or 1)
so,
1||(++j&&++k) will always be true, that is 1 . compiler
ignores ++j ,++k and only consider ++i.
thank you !
| Is This Answer Correct ? | 25 Yes | 6 No |
Answer / ep
After the execution of the m evaluation the variables can be:
i = -2
j = 2
k = 0
m = 1
All of of this is because compilers do NOT completely
evalute expressions if they can short cut the evaluation.
Anyway, this is very bad programming.
| Is This Answer Correct ? | 18 Yes | 10 No |
Answer / mayur dharmik
printf("%d%d%d",i,j,k,m);
it has only 3 %d.
So, it will print only 3 value.
| Is This Answer Correct ? | 9 Yes | 2 No |
Answer / mayur dharmik
output
-220
i.e,
i=-2, j=2, k=0.
it will print only 1st three value.
| Is This Answer Correct ? | 5 Yes | 2 No |
Answer / nidhi yadav
here logical && has higher priority than ||. so the block
(++j&&++k)will execute first and ans of this will be (3&&1=0)
since value increment first due to preincrement operator. now
the block(++i||0)will execute as (-2||0=1) since || opertor always gives true value except(0||0=0).
thus ans will be i=-2,j=3,k=1,m=1
| Is This Answer Correct ? | 2 Yes | 7 No |
difference between ordinary variable and pointer in C?
main() { int a=0; if(a=0) printf("Ramco Systems\n"); printf("India\n"); } output?
What is the difference between class and object in c?
write a “Hello World” program in “c” without using a semicolon?
Is javascript written in c?
What is a pointer value and address in c?
What are the different flags in C? And how they are useful? And give example for each in different consequences?
What is pre-emptive data structure and explain it with example?
C program to read the integer and calculate sum and average using single dimensional array
Explain what is wrong with this program statement?
How is a macro different from a function?
Where can I get an ansi-compatible lint?