循环里的temp<arr[5],怎么解释,为啥arr[0][0]=0,[1][0]=25,[2][0]=45...
怎么写这个
这是要问几个啊
arr是二维数组,有5行,从arr[0]到arr[4],arr[5]就是二维数组arr内存块之后的第一个字节地址----这段能理解吗? 这个不理解,就麻烦了
如果理解了,那么for(int i=0;i<5;i++) * temp = * (arr+i);这里就是将temp指针指向arr二维数组的每一行。
显然这个temp指针地址一定是小于arr[5]这个地址的----这个理解吧?因为arr[5]是二维数组之后的地址
然后内循环每次就是从arr的第0行,第1行,第2行,一直到第4行开始,逐个元素赋值到二维数组的最后一个元素。---这个能理解?
那么从第0行开始赋值的话,一共5*5=25个元素,自然就是从0到24,因此第0行就是0-4,可以理解?赋值一遍后,x是多少?是不是24?
然后从第1行开始赋值的话,一共5 * 4=20个元素,就是从25-44,因此第1行就是25-29,可以理解吗?x一直在增加啊
然后继续第2行,和上面规律一样。。。。