354 views
0 votes
0 votes

#include <stdio.h>

int main()

{

    int i = 3;

    printf("%d", (++i)++);

    return 0;

}

why this is giving compile time error?

1 Answer

1 votes
1 votes
Informally, lvalue is the left side value of the statement when we try to do some sort of assignment. The assignemnt is possible only to objects. If we try to assign some values to constants, we will get the 'lvalue error'.
Here,++i outputs 4 and doing 4++ is similar as doing 4 := 4 + 1, which causes lvalue error.

Related questions

0 votes
0 votes
1 answer
1
Debargha Mitra Roy asked 6 days ago
67 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
113 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
254 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