zippo1.c 中 zippo+1和zippo[0]+1的区别在哪里 分别是怎么看的*(*(zi
发布网友
发布时间:2022-04-27 10:10
我来回答
共1个回答
热心网友
时间:2023-09-11 22:09
zippo + 1 是按照二维数组第一维的长度来算, 假设系统的int长度为4,,每一组是2个int就是8,那么zippo+1就是从zippo地址开始往后加8
zippo[0] + 1 是以第二维的每个单元长度来算, 每个单元就是1个int,所以长度是4,那么zippo[0] + 1 就是从zippo地址开始往后加4
*(*(zippo+2)+1 ) 可以分两步看: *(zippo+2) , 因为是二维数组,所以取第一维的第2个组(从0开始,别弄错),仍然是个地址 ,这个地址就是第二个单元的首地址,即: {1,3}所在的地址 , 这个是一维组的地址,后面加1那肯定就是这个组里面单元的地址,所以加1就是地址加4 ,一个int的长度,指向了3,所以*(*(zippo+2)+1) ,取出来的内容是3
可以这样理解,*数组,不到最后的具体单元,那么取出来的都是地址(即指针);指针加1,这个1的长度就是这个指针所在维的组的长度