replaceMax()函数里,第一句已经定义了「int max = arr[0];」,也就是把数组的第一个元素(下标为0)赋值给了变量max了啊,后面的循环和判断语句里,从不从数组的下标为0的元素开始都可以,从0开始判断5次和从1开始判断4次的结果都是一样的,因为arr[0]肯定是不会大于它自己的,所以就算从0开始判断,那一次判断条件也是不成立,也不可能执行if内部的代码块,因此为了条理清晰、代码直接、效率优先,就没有必要从下标0开始,而直接从下标1开始。再罗嗦一句就是,从下标0开始循环,也不会错,只不过呢会给人印象是写代码的人没有预见到代码的运行情况,思路不清晰。