j初始化的时候就赋值为2了,所以这个循环i的初始值就为2。第一次循环str[2] = str[3],即把字符d写到c的位置,现在str的值为"abdde"。第二次循环str[3] = str[4],即把字符e写到d的位置,现在str的值为"abdee"。第三次循环str[4] = str[5],即把结束符'\0'写到e的位置,现在str的值为"abde"。第四次循环str[5]为结束符'\0',循环结束。其实循环下面那句给str[i] = '\0'都多余了。