众所周知,两指针相减的绝对值=两个指针之间的元素个数,但是他们是怎么求得的你知道吗?接下来来看这么一个例题:
我们创建了一个二维数组以及一个数组指针,将二维数组的数组名(也就是第一行元素地址赋给p),求出&p[4][2]-&arr[4][2]之间的元素个数。
再来看下面这一张图,我们知道,数组元素的存储是连续的,数组元素类型为int型,而指针p指向的数组元素也是int型,其所指向的数组包含4个整型元素。
p首元素地址与arr[0]地址相同;不同在于,arr每次+1,就会跳过5个整型,p每次+1,只会跳过4个整型。而&p[4][2]=*(p+4)+2,由上图可知&p[4][2]=&arr[3][3],结果如下图,这时我们可以看到,arr[3][3]与arr[4][2]之间正好是4个元素。
作者才疏学浅,如有错误,希望能够不吝教诲,共同进步。