void main()
{
int i=5;
printf("%d",i+++++i);
}
Answers were Sorted based on User's Feedback
Answer / vinay,
:) its just how the Compiler parses things..
the..maximum matching (of a token) principle... from the
left..
1. i++ is a valid maximum match. Good, next
2. + match, next (expects a + or a identifier,for furthur
match)
3. + (this is not a identifier, but a + will do so:
match=++). Next the parser wants an indentifier.. else
compiler flags an error..
4. + (not an identifier.. so.. fails)
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / ashwini
This gives an error. The error is as below:
error C2105: '++' needs l-value
if we correct the code to printf("%d", i++ + ++i);
We get the answer as 12...
The above printf becomes a statement when it sees the
semicolon. Unary operators have right to left associativity.
So, ++i is evaluated first to 6. Then, i++ is evaluated. i++
contributes 6 to addition and then increments i. So, we get
the answer as 12.
| Is This Answer Correct ? | 1 Yes | 1 No |
Answer / shivam shukla
all of you are breaking the statement i+++++i correctly as
i++ + ++i and your answer 12 is also write but you are
explaining it the wrong way......first i++ will make the
value 6 and again a ++i will make it 7 but inn actual
calculation of i++ + ++i....5+7.....will be calculated
hence we get the value 12
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / ashvin solanki (srimca college
There will be a compilation error .....
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sulochana
This statement is just i=i++ + ++i;
Initially i=5
i++ increments after the statement completed For now its
value is 5.
++i increments before its execution.so it is 6
It executes like
i=5+6; i.e. i=11
| Is This Answer Correct ? | 2 Yes | 8 No |
what is the difference between unix os and linux os
Dont ansi function prototypes render lint obsolete?
What are loops in c?
What are the different types of control structures in programming?
When is the “void” keyword used in a function?
How to reverse a string using a recursive function, without swapping or using an extra memory?
31 Answers Cisco, Mind Tree, Motorola, Ophio, Sony, TCS, Wipro,
Which function in C can be used to append a string to another string?
What is indirection?
Can we use any name in place of argv and argc as command line arguments?
Tell me when is a void pointer used?
how to print this sereis 2 4 3 6 5..........?
a simple program in c language