closed by
553 views
1 votes
1 votes
closed with the note: It has sequence point problem.
#include<stdio.h>
void main(){
int i=11;
printf("%d \n", i++|++i);
printf("%d",i);
}

Output is: 15
13

I understand how 13 came but I don't get how 15 came. And why there is no sequence point problem in this?

closed by

1 Answer

1 votes
1 votes

bro take this line 
printf("%d \n", i++|++i); this is nothing but 

11 = 1011
12 = 1100

11 || 12  = (1011 | 1100) = BitwiseOR(1011,1100) = (1111)2 = (15)10

Related questions

0 votes
0 votes
1 answer
1
Debargha Mitra Roy asked Apr 16
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