C++ Quiz18 of 173
Difficulty:
⬅️ Prev: 18Quiz ID: 24Next: 25 ➡️

According to the C++23 standard, what is the output of this program?

#include <iostream>
#include <limits>

int main() {
  unsigned int i = std::numeric_limits<unsigned int>::max();
  std::cout << ++i;
}
Hint

What happens when an unsigned integer overflows? Is it well-defined?

Reveal answer

0

Explanation

Unsigned integers have well-defined behaviour when they overflow. When you go one above the largest representable unsigned int, you end up back at zero.

According to §[basic.fundamental]¶2 in the C++ standard:

The range of representable values for the unsigned type is 0 to 2N − 1 (inclusive); arithmetic for the unsigned type is performed modulo 2N.

⬅️ Prev: 18Quiz ID: 24Next: 25 ➡️