286 views
2 votes
2 votes
#include<stdio.h> 
int main() 
{ 
    int i, j, k;
    i = 5; 
    j = ++i;
    i = j--;
    k = (i+j)++;
    printf("%d",k);
}

What will be the output of the above program?

(A) 11
(B) 12
(C) Compilation error
(D) None of the above

1 Answer

Best answer
3 votes
3 votes
error: lvalue required as increment operand
     k = (i+j)++;

An lvalue refers to an object that persists beyond a single expression. Lvalue is an object that has a name. All variables, including nonmodifiable (const) variables, are lvalues.

This means (i+j) it's just a value; it doesn't point (refer) to a particular object (or variable) and so trying to change it generates compiler error.

More on this : http://stackoverflow.com/questions/6230274/lvalue-required-as-increment-operand-error

selected by

Related questions

0 votes
0 votes
2 answers
1
Debargha Mitra Roy asked Apr 16
113 views
#include <stdio.h int main() { int a[3] = {1, 3, 5, 7, 9, 11}; int *ptr = a[0]; ptr += sizeof(int); printf("%d", *ptr); return 0; }(Assume size of int to be $2$ bytes.)T...
0 votes
0 votes
2 answers
3
Debargha Mitra Roy asked Apr 10
140 views
What is the output of the below code?#include <stdio.h void main() { static int var = 5; printf("%d ", var ); if (var) main(); }a. 1 2 3 4 5b. 1c. 5 4 3 2 1d. Error
1 votes
1 votes
1 answer
4
SSR17 asked Feb 29
271 views
#include <stdio.h int main() { int i = -1; int x = (unsigned char)i; printf("%d", x); return 0; }output is 255 , but please explain how