如果k初始值为负数,不就减不到0了吗?

img

因为int 类型是有取值范围的,一般默认为4个字节(一个字节八个二进制位)
而当K减到了它的下界时,K溢出,归0

这么讲吧,你的疑问点应该是没给他赋初值,不确定,但是记住不赋初值的时候,变量存储的是一个垃圾数字可能是455644也可能是54561,你的循环条件是k=0时停止循环,无论数是多少k最终都会变成0