正如swegi所说,这是未定义的行为。 正如史蒂夫·杰索普(Steve
Jessop)等人所说,在C89之前,它是一个未指定的值,并在C99中指定(观察到的行为与C99不符)。
在大多数环境中实际发生的情况是,最后一个值的返回值
printf保留在用于返回值的寄存器中。
因此,对于n == 0,它将是11;如果n是一位,它将是12;对于两位n,它将是14;对于三位n将是16,等等。

正如swegi所说,这是未定义的行为。 正如史蒂夫·杰索普(Steve
Jessop)等人所说,在C89之前,它是一个未指定的值,并在C99中指定(观察到的行为与C99不符)。
在大多数环境中实际发生的情况是,最后一个值的返回值
printf保留在用于返回值的寄存器中。
因此,对于n == 0,它将是11;如果n是一位,它将是12;对于两位n,它将是14;对于三位n将是16,等等。