Please, consider the following C++ snippet:
#include <iostream> int main() { int x; std::cout << x << '\n'; return 0; } as expected the result printed will be unpredictable since the variable x has not been initialized. If you run it may get 458785234 and 348934610 the second time. However, if you change the code the following way:
#include <iostream> int main() { int x; std::cout << x << std::endl; return 0; } Now, the x printed is always equal to zero. Why is that? Note the only change introduced is the std::endl. Can anybody explain why this assigns 0 to x variable?
xis uninitialized. You shouldn't have any expectations to its value. (This is U.B., strictly speaking.) So, the answer could be "Why not." ;-)xwith a value. e.g.int x = 1