### Question 3.3

I've experimented with the code

    int i = 3;
    i = i++;

on several compilers. Some gave `i` the value 3, some gave 4, but one gave 7. I know the behavior is undefined, but how could it give 7?

Undefined behavior means anything can happen. See questions 3.9 and 11.33. (Also, note that neither `i++` nor `++i` is the same as `i+1`. If you want to increment `i`, use `i=i+1` or `i++` or `++i`, not some combination. See also question 3.12.)

Read sequentially: prev next up top

This page by Steve Summit // Copyright 1995 // mail feedback