首先纠正内层循环计数器应该为j或者别的变量,否则和外层循环计数器冲突。第一个printf("*")从属于内层循环,第二个printf("*")从属于外层循环,在内层循环结束后执行。每一次外层循环,先执行内层循环,输出(m-1)个星号,然后执行后面的第二个printf,再输出一个星号。
第一次运行时, 在里面那个循环里一共打印 m - 1 个 * ,循环结束后 i 等于 m,外部循环也结束了,所以说外部那个基本就没什么用,只是打印了一个 *