你要明白arr[5]是啥,就没有问题了。arr[5]是arr二维数组的第5行。对于arr数组来说,实际只有第0行到第4行。所以这个第5行就是内存中arr数组值后的第一个字节。也就是说,二维数组所有元素的地址都小于arr[5]
因此,第一遍循环时,内层循环给0到4行所有元素分别赋值为0-24,其中第0行为0-4;然后第二遍循环时,temp指向第1行,因此给1-4行所有元素赋值,值是从25-44,其中第1行为25-29;以此类推。
应该是 for(; tmp<arr[i][5]; tmp++)
要搞清楚哪里是遍历行,哪里是遍历列。