大一新生,指针,不太懂,再发一遍

img

img


为什么突然从4到了25啊,而且每次上下两行加的还在递减(从0到25加了25.从25到45加了20)

你要明白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++)

要搞清楚哪里是遍历行,哪里是遍历列。