Interesting discussion. I can honestly say that I have never seen any of these come up.<p>In case anyone is worried, the sizeof('i') one looks, at first glance, like the most worrying one.<p>However, it is less serious than it might look. Given "char c;", sizeof(c) evaluates to 1 in both languages, it is just a single character constant like 'i' which causes a possible problem.<p>For anyone curious why, I'm not sure why character constants are int in C, but in pure C I think it is impossible to tell that a character literal is an int (as there is no function overloading, or type deductions).<p>In C++ however, with function overloading, we can tell. In particular, we really want:<p>std::cout << 1 << 'i' << std::endl;<p>To print the number 1, followed by the letter i. Therefore we need the letter i to be of type char, rather than another int.<p>(Fixed last 'C' to 'C++' : Thanks dbaupp)