I am running this C program:
#include<stdio.h>
void print(int* a, int* b, int* c, int* d, int* e)
{
printf("%d %d %d %d %d\n", *a, *b, *c, *d, *e);
}
int main()
{
static int a[] = {97, 98, 99, 100, 101, 102};
int* ptr = a + 1;
print(++ptr, ptr--, ptr, ptr++, ++ptr);
ptr = a+ 1;
printf("%d %d %d %d %d\n", *++ptr, *ptr--, *ptr, *ptr++, *++ptr);
int i = 0;
printf("%d %d %d", i++, ++i, ++i);
}
One compiler prints this as the output:
99 99 98 98 100
99 99 98 98 100
0 2 3
Another compiler prints this:
100 100 100 99 100
100 100 100 99 99
2 3 3
Now, I am confused what is happening. What is the correct order?