Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


void main()
{
int i=5;
printf("%d",i+++++i);
}

Answers were Sorted based on User's Feedback



void main() { int i=5; printf("%d",i+++++i); } ..

Answer / visu

i+++++i=i++ + ++i
remember this expression is nothing but adding two i's

now unary operators hav higher precedence than binary
=>++ executes first
so i++ =5 (since value changes after statement)
and ++i makes it i=6

as i said its jus adding to i's
now ans=i+i=6+6=12

Is This Answer Correct ?    15 Yes 5 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / surenda pal singh chouhan

Compiler Error

Explanation:
The expression i+++++i is parsed as i ++ ++ + i which is an
illegal combination of operators.

Is This Answer Correct ?    17 Yes 9 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / basha

error: invalid lvalue in increment

Is This Answer Correct ?    8 Yes 3 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / jaroosh

This is a very interesting issue, to solve this, first you
have to note an interesting thing about pre and
postincrementation operators :
a) postincrementation operator instantly MAKES variable an
RVALUE in expression, this is because postincrement operator
doesnt keep track of how many postincrements were made so it
is NOT cumulative (ie u can only use one postincrementation
for variable)
b) preincrementational operator first increments variable
and THEN uses it in expression so there is no need to keep
track of how many preincrementations were made thus
preincrement is cumulative.
Following lines make the point :
i++ = 1; //WRONG! i++ becomes RVALUE,you cannot assign to it
++i = 1; //OK! you first incremented and then assigned.
and thus :
i++++; //WRONG! (i++) is RVALUE so you cannot (RVALUE)++
++++i; //OK! ++(++i)
Now, since postfic ++ has the higher precedence, :
i+++++i
is treaded like :
(i++)++ + i
which will throw compiler error.
i++ + ++i
is however fine, so as
i+ ++++i

This issue might be compiler specific, Im not sure.

Is This Answer Correct ?    5 Yes 2 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / sheetal

gives error
"error C2105: '++' needs l-value"
because it parses above expression in "((i++)++)+i), so in
2nd unary operator it searches for l-value.
If we modify above pgm into following way:-
void main()
{
int i=5;
printf("%d",((i++)+(++i)));
}
it will give answer 12.
because once last pre-unary increment operator is operated,
i is incremented to 6 and 6+6 = 12.
if we put one more print for i's value, it will give i =7.
because first post-increment operator is operated after
first printf statement as follows.
void main()
{
int i=5;
printf("%d",((i++)+(++i)));
printf("%d\n",i); // ===> i =7
}

Is This Answer Correct ?    4 Yes 1 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / visu

hey sulochana hav u tried it in a compiler..
cuz for me the result for that is 12.

i+++++i might give u an error but for sure (i++ + ++i)=12

Is This Answer Correct ?    7 Yes 5 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / suresh reddy

Error

Is This Answer Correct ?    2 Yes 1 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / vamsi

Hi Guys.....

The answer is

6+6 = 12

The compiler will take the expression as
i++ + ++i
And the expression would be evaluated from Right to left ...

so answer is 12 and i=7;

Is This Answer Correct ?    1 Yes 0 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / pramod

ERROR! Left Operand must be an LVALUE

Is This Answer Correct ?    1 Yes 0 No

void main() { int i=5; printf("%d",i+++++i); } ..

Answer / mukul garg

i=5;
i++ + ++i;
5+7=12
ans:12

Is This Answer Correct ?    1 Yes 0 No

Post New Answer

More C Interview Questions

Why double pointer is used in c?

0 Answers  


a c code by using memory allocation for add ,multiply of sprase matrixes

0 Answers  


Explain how many levels deep can include files be nested?

0 Answers  


who will call your main function in c under linux?

2 Answers  


What is a global variable in c?

0 Answers  


What is the difference between functions getch() and getche()?

0 Answers  


Why do we need functions in c?

0 Answers  


Convert the following expression to postfix and prefix (A+B) * (D-C)

3 Answers   Satyam,


How can I write data files which can be read on other machines with different word size, byte order, or floating point formats?

0 Answers  


What is static volatile in c?

0 Answers  


If jack lies on Mon, Tue Wed and jill lies on Thursday, Friday and Saturday. If both together tell they lied yesterday. So c the given options and then c cos in the given dates one will be saying the truth and one will be lying. I got Thursday as option because jack is saying the truth he lied yest but jill is lying again as he lies on that day.

0 Answers   TCS,


What's the difference between struct x1 { ... }; and typedef struct { ... } x2; ?

3 Answers  


Categories