#include <stdio.h>
int main(void) {
int i;
int *ptr
= (int *) malloc(5 * sizeof(int)); int *ptr2 = ptr;
int *ptr3 = ptr;
for (i=0; i<5; i++)
{
*(ptr + i) = i;
}
printf("%d ", *ptr
++); //*ptr evaluated to 0, print 0, increment ptr printf("%d ", (*ptr
)++); //*ptr evaluated to 1, print 1, increment ptr printf("%d ", *ptr
); //*ptr evaluated to 2, print 2 printf("%d ", *++ptr
); //increment ptr, *ptr evaluated to 3, print 3 (but in actual it prints 2, why?) printf("%d ", ++*ptr
); //*ptr evaluated to 3, increment 3, print 4 (but in actual it prints 3, why?) return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKaW50IG1haW4odm9pZCkgewoJaW50IGk7CiAgICBpbnQgKnB0ciA9IChpbnQgKikgbWFsbG9jKDUgKiBzaXplb2YoaW50KSk7CiAJaW50ICpwdHIyID0gcHRyOwogCWludCAqcHRyMyA9IHB0cjsKIAkKICAgIGZvciAoaT0wOyBpPDU7IGkrKykKICAgIHsKICAgICAgICAqKHB0ciArIGkpID0gaTsKICAgIH0KICAgIHByaW50ZigiJWQgIiwgKnB0cisrKTsgICAvLypwdHIgZXZhbHVhdGVkIHRvIDAsIHByaW50IDAsIGluY3JlbWVudCBwdHIgCiAgICBwcmludGYoIiVkICIsICgqcHRyKSsrKTsgLy8qcHRyIGV2YWx1YXRlZCB0byAxLCBwcmludCAxLCBpbmNyZW1lbnQgcHRyCiAgICBwcmludGYoIiVkICIsICpwdHIpOyAgICAgLy8qcHRyIGV2YWx1YXRlZCB0byAyLCBwcmludCAyCiAgICBwcmludGYoIiVkICIsICorK3B0cik7ICAgLy9pbmNyZW1lbnQgcHRyLCAqcHRyIGV2YWx1YXRlZCB0byAzLCBwcmludCAzIChidXQgaW4gYWN0dWFsIGl0IHByaW50cyAyLCB3aHk/KQogICAgcHJpbnRmKCIlZCAiLCArKypwdHIpOyAgIC8vKnB0ciBldmFsdWF0ZWQgdG8gMywgaW5jcmVtZW50IDMsIHByaW50IDQgKGJ1dCBpbiBhY3R1YWwgaXQgcHJpbnRzIDMsIHdoeT8pCglyZXR1cm4gMDsKfQoKCg==