In C language, unsigned integer variables are assigned negative integers, and the printed numbers are also negative. Why not report an error?
Assigning a negative number to an unsigned variable will treat the complement of the negative number as a positive number (unsigned level is higher than int)-this is the same as upgrading to a floating-point type when assigning an integer to a floating-point variable-which conforms to the automatic type conversion rules of C/C++, so it will not report an error. Whether the output is negative or not is probably wrong. The output is unsigned unless you force it to be an int output.