what is the output of following program ?
void main()
{
int i=5;
printf("%d %d %d %d %d ",i++,i--,++i,--i,i);
}
Answers were Sorted based on User's Feedback
Answer / sameeksha agrawal
ya i can tell u abt d ans ..the reasn behind it x++ is
example of post increament in which frstly value of any
variable is prnt thn oprtr r prfrmed and the oprtions r
perfrmd frm right side...
| Is This Answer Correct ? | 7 Yes | 2 No |
Answer / sandeep gupta
Friends, actually the output is compiler dependent. Never
give any specific answer in this type of questions because C
does not provide any format in evaluation order of postfix
and prefix expressions when passed to any functions like
printf() eg. fun1(i++,i) may pass fun1(5,6) in some
compilers and fun1(5,5) in another. So it totally depends on
what compiler we're using.
| Is This Answer Correct ? | 4 Yes | 0 No |
Answer / jalp
Here if i do it manually then i got 44545 but compiler shows
me : 45545
Can any body show the stack process that how it execute
internally,
And also reply through mail.
Thanks.
| Is This Answer Correct ? | 6 Yes | 5 No |
Answer / jalp
That i know .. I want to know the stack process , how it
internally works .. if you elaborate through step then
please explain it ..
Thanks.
| Is This Answer Correct ? | 2 Yes | 1 No |
Answer / kavsac
Guys,
There is something, I wanna add on. The above result occurs only in windows, in Unix its 56656
| Is This Answer Correct ? | 2 Yes | 1 No |
Answer / shenbagam
in c its left to right operation will be perfomed by
compiler..... so take this
int i=5;
printf("%d %d %d %d %d ",i++,i--,++i,--i,i);
i=5;
--i=4; after tis the value of i=4 only;
because --i will decrement the value of i, and then return the decremented value.
++i=5; after this the value of i=5;
because ++i will increment the value of i, and then return the incremented value.
i--=5; after this the value of i=4;
because will decrement the value of i, but return the pre-defind value of i. so i=5 before the step na?.....
i++=4; after this the value of i=5;
because will increment the value of i, but return the pre-defined value of i.so i=4 before the step na?...
so only the result will be like 45545 this.......
int i=5;
printf("%d %d %d %d %d ",i++,i--,++i,--i,i);
after the step if u print i; the value must be 5
only......... so the doubt will be cleared aha?............
all the best:):):):).
| Is This Answer Correct ? | 4 Yes | 3 No |
Answer / sameeksha agrawal
no Kavsac u r wrng try again its answer...
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sameeksha agrawal
sry u r totally wrng cz c is structrd progrmmmng languaga
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sindhu
Answer:after compilation i got 45545.... but if i consider it from left to right in manual my answer is 55454...
i want clear xplanation for tis program...
| Is This Answer Correct ? | 0 Yes | 0 No |
#include<conio.h> main() { int x,y=2,z,a; if(x=y%2) z=2; a=2; printf("%d %d ",z,x); }
How will u find whether a linked list has a loop or not?
main() { char *str1="abcd"; char str2[]="abcd"; printf("%d %d %d",sizeof(str1),sizeof(str2),sizeof("abcd")); }
/*what is the output for*/ void main() { int r; printf("Naveen"); r=printf(); getch(); }
main() { int i=10; i=!i>14; Printf ("i=%d",i); }
main() { printf("%x",-1<<4); }
How do you create a really large matrix (i.e. 3500x3500) in C without having the program crash? I can only reach up to 2500. It must have something to do with lack of memory. Please help!
‎#define good bad main() { int good=1; int bad=0; printf ("good is:%d",good); }
Write a routine to implement the polymarker function
main() { char p[ ]="%d\n"; p[1] = 'c'; printf(p,65); }
why the range of an unsigned integer is double almost than the signed integer.
char *someFun() { char *temp = “string constant"; return temp; } int main() { puts(someFun()); }